最简单的动态规划
class Solution { public: int jumpFloor(int number) { int dp[number + 1]; dp[1] = 1; dp[0] = 1; for(int i = 2; i <= number; i++) dp[i] = dp[i - 1] + dp[i - 2]; return dp[number]; } };
优化一下,只用三个变量
class Solution { public: int jumpFloor(int number) { if(number == 0 || number == 1) return number; int a = 1, b = 1, c; for(int i = 2; i <= number; i++) { c = a + b; a = b; b = c; } return c; } };