剑指offer 8.跳台阶

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

解法:可以看作斐波那契数列的另一种行式,对于n大于2的台阶,它可以从n-1级台阶的方法 中跳1阶 即可到达,也可以从n-2级台阶的方法中跳2阶到达。所以上一个n级台阶的跳法f[n] = f[n-1]+f[n-2].但是注意n=2时候f[n]=2,而不是f[1]+f[0] = 1

class Solution {
public:
    int jumpFloor(int number) {
        vector <int> result;
        result.push_back(0);
        result.push_back(1);
        result.push_back(2);
		for (int i = 3;i <= number;i++)
		{
			result.push_back(result[i-1]+result[i-2]);
		}
		return result[number];
    }
};

猜你喜欢

转载自blog.csdn.net/u010760034/article/details/83349318
今日推荐