找规律发现答案是2n-1
其实对于第n个台阶,相对于前一个状态多了一个台阶,那么我们可以把第n-1个台阶看作一种走法,即走n-1个台阶或者走1个台阶,那么就是先走1个再走n-1个或者先走n-1个再走1个台阶即可到达
那么可以得到 dp[n] = dp[n - 1] * 2; dp[1] = 1;
class Solution { public: int jumpFloorII(int number) { return 1 << (number - 1); } };
找规律发现答案是2n-1
其实对于第n个台阶,相对于前一个状态多了一个台阶,那么我们可以把第n-1个台阶看作一种走法,即走n-1个台阶或者走1个台阶,那么就是先走1个再走n-1个或者先走n-1个再走1个台阶即可到达
那么可以得到 dp[n] = dp[n - 1] * 2; dp[1] = 1;
class Solution { public: int jumpFloorII(int number) { return 1 << (number - 1); } };