# Leetcode [No. 746] Min Cost Climbing Stairs (EASY) + Second solved on 2025/04/05 ## 題目 https://leetcode.com/problems/min-cost-climbing-stairs/description/ ## 思路 這個爬梯子的題目其實就是一個很基本的DP題目,只要用一個dp array來記錄這個step最少需要多少cost就好。 + 現在這個狀態只有兩種可能,因為一次可以跨一步或是兩步。 + 所以要看一步前+一步前的cost + 或是兩步前+兩步前的cost + 再取他們的最小值即可~ ```c++ class Solution { public: int minCostClimbingStairs(vector<int>& cost) { int dp[1001] = {}; int n_size = cost.size(); dp[0] = 0; dp[1] = 0; for (int i = 2; i <= n_size ; i++) { dp[i] = min(dp[i-1]+cost[i-1], dp[i-2]+cost[i-2]); } return dp[n_size]; } }; ``` ### 解法分析 + time complexity: O(n) ### 執行結果 ![image](https://hackmd.io/_uploads/rJ0UYgLL6.png)