动态规划--台阶问题
2017-06-02 11:16
267 查看
int countWays(int n) { int hash[100001];//因为最大值为100000 hash[0] = 0; hash[1] =1; hash[2] =2; for (int i = 3; i <=n; i++) { hash[i] =(hash[i - 1] + hash[i - 2])%1000000007; } return hash ; }
有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。为了防止溢出,请将结果Mod 1000000007
给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100000。
思路:
如果想走到第i层台阶,只能从第i-1层台阶迈一步到第i层台阶,或从第i-2层台阶迈两步到第i层台阶。
所以走上第i层台阶的方法数为:f(i)=f(i-1)+f(i-2),i>2
相关文章推荐
- 问题一、走台阶问题(递归和动态规划)
- 牛客网台阶问题源码实现 动态规划
- 动态规划解决跳台阶问题
- 动态规划台阶问题
- 跳台阶问题 + 变态跳台阶问题 解法(动态规划递归 + 非递归)
- 动态规划9:跳台阶问题
- 动态规划解决跳台阶问题
- 动态规划2:台阶问题
- PKU 1050 动态规划-解决最大子矩阵问题
- 动态规划 (Dynamic Programming) 之 背包问题合辑 (Knapsack, Subset Sum, Partition and change making problem )
- 动态规划解决最大子矩阵问题
- 动态规划——贪心算法——活动选择问题
- 动态规划求解最长公共子序列问题
- 动态规划解决矩阵链乘问题的java编码实现
- 动态规划——找零钱问题
- 使用动态规划解决有关数字组合的问题
- 动态规划求解编辑距离问题
- [POI][Ruvtex 31]潜水员问题(动态规划)
- 装箱问题(NOIP竞赛原题)(动态规划)
- 石子合并问题 --动态规划--解法1