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