/* 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)
/* 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)