NC68 #跳台阶#
跳台阶
http://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4
最简单的动态规划
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;
}
};