746.Min Cost Climbing Stairs
Example 1:
Input: cost = [10, 15, 20]
Output: 15
Explanation: Cheapest is start on cost[1], pay that cost and go to the top.
Example 2:
Input: cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1]
Output: 6
Explanation: Cheapest is start on cost[0], and only step on 1s, skipping cost[3].
Note:
1. cost will have a length in the range [2, 1000].
2.Every cost[i] will be an integer in the range [0, 999].class Solution {
vector<int> c;
int minCost(int n)
{
if(n==1) return c[0];
if(n==2) return min(c[0],c[1]);
if(n==3) return min(c[0]+c[2],c[1]);
return min(minCost(n-1)+c[n-1], minCost(n-2)+c[n-2]);
}
public:
int minCostClimbingStairs(vector<int>& cost) {
for(auto i:cost)
c.push_back(i);
int len=cost.size();
return minCost(len);
}
};Last updated