跳台阶
来源:互联网 发布:苹果5s用不了4g网络 编辑:程序博客网 时间:2024/06/06 22:45
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
分析
用动态规划解决,
到达1阶:有1种方式: 0->1;
到达2阶:有2种方式: 0->2,1->2,
到达3阶:有3种方式:0->2->3;0->1->3;0->1->2->3;
归纳可知,到达n的种类恰好是到达n-1和到达n-2的种类数之和。
递推公式很简单:f(i) = f(i-1)+f(i-2);(i>=3);
下面给出C++实现代码:
int jumpFloor(int number){ vector<int> f(number+1,0); f[1] = 1; f[2] = 2; for(int i = 3;i<=number;i++){ f[i] = f[i-1]+f[i-2]; } return f[number];}
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
分析
和上面类似,本题的递推公式是:f(k) = f(0)+f(1) + f(2) + … +f(k-1)
C++实现如下:
int jumpFloorII(int number){ vector<int> f(number+1,0); f[0] = 1; //到0阶只有1种方法。 f[1] = 1; f[2] = 2; for(int i = 3;i<number;i++){ for(int j = 0;j<i;j++){ f[i] += f[j]; } } return f[number];}
阅读全文
0 0
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 跳台阶
- 鹅厂专家详解Android N适配要点
- SpringMVC处理Json-使用 HttpMessageConverter
- 如何实现模拟人类视觉注意力的循环神经网络?
- 编码器使用教程与测速原理之硬件方面(一)
- iOS手势解锁和指纹解锁
- 跳台阶
- 文本情感分类
- java之递归算法
- 线性循环链表
- Tomcat处理乱码问题终极版
- Leetcode——26. Remove Duplicates from Sorted Array
- dede二次开发织梦
- 随时更新的日记
- Ubuntu 安装与测试 Caffe & 遇到的问题及解决方案