#define MIN(a, b) ((a) > (b) ? (b) : (a)) int minCostClimbingStairs(int* cost, int costSize) { int dp[costSize + 1]; if(costSize == 1) return cost[0]; dp[0] = 0; dp[1] = 0; for(int i = 2; i < costSize + 1; i++) { dp[i] = MIN(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]); } return dp[costSize]; }