本文共 441 字,大约阅读时间需要 1 分钟。
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
找规律:
第0阶台阶, 0种办法 第1阶台阶, 1种办法 第2阶台阶, 2种办法 第3阶台阶, 3种办法 第4阶台阶, 5种办法 … 也就是斐波那契数列,从第三项开始,该项的值为前两项值的和,f[n]=f[n-1]+f[n-2].class Solution { public: int climbStairs(int n) { int f[n+2]; f[0]=0; f[1]=1; f[2]=2; for(int i =3;i<=n;i++){ f[i]=f[i-1]+f[i-2]; } return f[n]; }};
结果:
转载地址:http://qnexi.baihongyu.com/