dp数组存每一级台阶的所需的最小花费
考虑初始状态第0和第1阶无需花费
转移方程:当前台阶是从前一级还是前两级台阶,取最小
dp[i]=fmin(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
int minCostClimbingStairs(int* cost, int costLen ) {
// write code here
//动态规划 初始条件 转移方程
int res=0;
int dp[costLen+1];
dp[0]=0;
dp[1]=0;
for(int i=2;i<=costLen;i++)
{
dp[i]=fmin(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
res=dp[i];
printf("%d ",res);
}
return res;
}