1,题目描述
2,题目分析
动态规划,类似题目:[leetcode]198.打家劫舍(House Robber )C++代码实现
3,代码实现
class Solution {
public:
int minCostClimbingStairs(vector<int>& cost) {
int costSize = cost.size();
if (cost.size() == 0)
return 0;
if (cost.size() <= 2)
return cost.size() == 1 ? cost[0] : min(cost[0], cost[1]);
vector<int> dp(costSize);
dp[0] = cost[0];
dp[1] = cost[1];
for (int i = 2; i < cost.size(); i++)
dp[i] = min(dp[i - 1] + cost[i], dp[i - 2] + cost[i]);
return min(dp[costSize - 1], dp[costSize - 2]);
}
};