剑指Offer——跳台阶
解法:
直接用DP就行,因为这里限定了每次只能跳1格或者2格,所以只需要加上dp[i-1]
和dp[i-2]
的情况就行,相当于是状态转移到了i-1
和i-2
的时候可能跳到当前的状态的情况。
class Solution {
public:
int jumpFloor(int number) {
vector<int> dp(number+1, 0);
dp[0] = 0;
dp[1] = 1;
dp[2] = 2;
for(int i=3; i <= number; ++i) {
dp[i] = dp[i-1] + dp[i-2];
}
return dp[number];
}
};
本博客文章默认使用CC BY-SA 3.0协议。