剑指offer题解C++【8】跳台阶
2017-07-27 14:01
302 查看
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路
对于n级台阶,假设有arr种跳法;
1. 如果第一次跳1阶,那么总共有arr[n-1]种跳法;
2. 如果第一次跳2阶,那么总共有arr[n-2]种跳法;
3. 结合1,2,那么arr
=arr[n-1]+arr[n-2]
本题其实是斐波那契数列问题。
代码
class Solution { public: int jumpFloor(int number) { if (number <= 0) return 0; vector<int> arr(number + 1, 1); for (int i = 2; i <= number; i++){ arr[i] = arr[i - 1] + arr[i - 2]; } return arr[number]; } };
相关文章推荐
- 剑指offer题解C++【9】变态跳台阶
- 剑指offer题解C++【2】
- 剑指offer题解C++【13】调整数组顺序使奇数位于偶数前面
- 剑指offer题解C++【3】
- 剑指offer题解C++【17】树的子结构
- 剑指offer题解C++【25】复杂链表的复制
- 剑指offer第八题【跳台阶】c++实现
- (C++)剑指offer-8:跳台阶(递归和循环)
- 剑指offer题解C++【10】矩形覆盖
- 剑指offer题解C++【22】从上往下打印二叉树
- 剑指offer题解C++【1】
- 剑指offer题解C++【6】旋转数组的最小数字
- 剑指offer题解 变态跳台阶
- (C++)剑指offer-9:变态跳台阶(递归和循环)
- 剑指offer题解C++【11】二进制中1的个数
- 剑指offer 面试题9:斐波那契数列及其变形(跳台阶、矩形覆盖) 题解
- 剑指offer题解C++【7】斐波那契数列
- 剑指offer题解 从上往下打印二叉树
- 剑指offer第三十六题【平衡二叉树】c++实现
- [剑指offer]跳台阶&变态跳台