摘要: 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 代码: 1 // 动态规划版 2 class Solution { 3 public: 4 int jumpFloor(int number) { 5 if( number 阅读全文
posted @ 2020-05-19 13:46 John_yan15 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 代码: 1 //动态规划版 2 class Solution { 3 public: 4 int jumpFloorII(int number) { 5 if( number == 阅读全文
posted @ 2020-05-19 13:41 John_yan15 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 一、算法定义 假设当你正在使用适当的输入数据进行一些计算。你在每个实例中都进行了一些计算,以便得到一些结果。当你提供相同的输入时,你不知道会有相同的输出,这就导致了你之前计算某些结果的宝贵时间被浪费掉了。你可以通过保存之前的计算结果去轻易地解决这个问题。比如通过使用恰当的数据结构等。 现在通过分析这 阅读全文
posted @ 2020-05-19 13:36 John_yan15 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 一、基本概念 所谓贪心算法是指,在对问题求解时,总是 做出在当前来看是最好的选择。也就是说,不从整体最优上加以考虑,通过贪心算法做出来的往往是在把 原问题拆分成几个小问题,分别求 每个小问题的最优解,再把这些“局部最优解”叠起来,就作为整个问题 当前 的最优解。 贪心算法无固定的算法框架,算法设计的 阅读全文
posted @ 2020-05-19 12:41 John_yan15 阅读(1142) 评论(0) 推荐(0) 编辑
摘要: 题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 代码: 1 class Solution 2 { 3 public: 4 void push(int node) { 5 stack1.push( node ); 6 } 7 int pop() { 8 in 阅读全文
posted @ 2020-05-18 13:01 John_yan15 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 代码: 1 clas 阅读全文
posted @ 2020-05-18 12:56 John_yan15 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。 n<=39 代码: 1 class Solution { 2 public: 3 int Fibonacci(int n) { 4 if( n == 0 ) 5 return 0 阅读全文
posted @ 2020-05-18 12:53 John_yan15 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 1. 基本定义 又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*) 2. 代码实现 2.1 基本递归代码(不实用) 阅读全文
posted @ 2020-05-18 12:50 John_yan15 阅读(2587) 评论(0) 推荐(0) 编辑
摘要: 1. 基本概念 栈中的元素遵守“先进后出”的原则(LIFO,Last In First Out) 只能再栈顶进行插入和删除操作 压栈(或推入、进栈)即push,将数据放入栈顶并将栈顶指针加一 出栈(或弹出)即pop,将数据从栈顶删除并将栈顶指针减一 栈的基本操作有:pop,push,判断空,获取栈顶 阅读全文
posted @ 2020-05-18 12:05 John_yan15 阅读(2755) 评论(0) 推荐(0) 编辑
摘要: 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 代码: 1 class Solution { 2 pub 阅读全文
posted @ 2020-05-17 19:53 John_yan15 阅读(171) 评论(0) 推荐(0) 编辑