/*
f[n]:跳n台阶的种类数=跳n-1台阶的种类数+跳n-2台阶的种类数
f[n]=f[n-1]+f[n-2]
f[1]=1
f[2]=2
f[3]=3
*/
class Solution {
public:
int jumpFloor(int number) {
int a=1,b=2;//求f[n]只保存两个数即可。
while(--number){
b = a+b;
a = b-a;
}
return a;
}
};
//时间复杂度为O(n),空间复杂度为O(1)
京公网安备 11010502036488号