第一题 509 斐波那契数列
class Solution {
public:
int fib(int n) {
if(n < 2) return n ;
int F[n+1];
F[0] = 0;
F[1] = 1;
for(int i = 2;i <= n;i++){
F[i] = F[i - 1] + F[i -2];
}
return F[n];
}
};
第二题 70 爬楼梯
class Solution {
public:
int climbStairs(int n) {
int Method[n+1];
if(n <= 2) return n ;
Method[1] = 1;
Method[2] = 2;
for(int i = 3; i <= n;i++){
Method[i] = Method[i - 1] +Method[i - 2];
}
return Method[n];
}
};
第三题 746 使用最小花费爬楼梯
class Solution {
public:
int minCostClimbingStairs(vector<int>& cost) {
int dp[cost.size() + 1];
dp[0] = 0;
dp[1] = 0;
for(int i = 2;i <= cost.size();i++){
dp[i] = min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
}
return dp[cost.size() ];
}
};