File tree Expand file tree Collapse file tree 1 file changed +22
-10
lines changed
algorithms/cpp/minCostClimbingStairs Expand file tree Collapse file tree 1 file changed +22
-10
lines changed Original file line number Diff line number Diff line change 2929 * Every cost[i] will be an integer in the range [0, 999].
3030 *
3131 ******************************************************************************************************/
32-
3332class Solution {
34- public:
35- int minCostClimbingStairs (vector<int >& cost) {
36- vector<int > dp (cost.size () , 0 );
37- dp[0 ] = cost[0 ];
38-
39- for (int i=1 ; i<cost.size (); i++) {
40- dp[i] = min ( cost[i] + dp[i-1 ], cost[i] + dp[i-2 ] );
33+ public:
34+ int minCostClimbingStairs (vector<int >& cost) {
35+ return minCostClimbingStairs02 (cost);
36+ return minCostClimbingStairs01 (cost);
37+ }
38+ int minCostClimbingStairs01 (vector<int >& cost) {
39+ vector<int > dp (cost.size () , 0 );
40+ dp[0 ] = cost[0 ];
41+ dp[1 ] = cost[1 ];
42+ for (int i=2 ; i<cost.size (); i++) {
43+ dp[i] = min ( dp[i-1 ], dp[i-2 ] ) + cost[i];
44+ }
45+ return min (dp[dp.size ()-1 ], dp[dp.size ()-2 ]);
4146 }
4247
43- return min ( dp[dp.size ()-1 ], dp[dp.size ()-2 ]);
44- }
48+ int minCostClimbingStairs02 (vector<int >& cost) {
49+ int dp1 = cost[0 ], dp2 = cost[1 ];
50+ for (int i=2 ; i<cost.size (); i++) {
51+ int dp = min ( dp1, dp2 ) + cost[i];
52+ dp1 = dp2;
53+ dp2 = dp;
54+ }
55+ return min (dp1, dp2);
56+ }
4557};
You can’t perform that action at this time.
0 commit comments