题解 | #最小花费爬楼梯#
最小花费爬楼梯
https://www.nowcoder.com/practice/6fe0302a058a4e4a834ee44af88435c7
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param cost int整型一维数组
* @return int整型
*/
public int minCostClimbingStairs (int[] cost) {
// write code here
int len=cost.length;
// if(len<=2){
// return 0;
// }
int[] mark=new int[len];
return Math.min(minExpense(cost,0,len,mark),minExpense(cost,1,len,mark));
}
public int minExpense(int[] cost,int cur,int len,int[] mark){
if(cur>=len){
return 0;
}
if(mark[cur]!=0){
return mark[cur];
}
int firstExpense=cost[cur]+minExpense(cost,cur+1,len,mark);
int secondExpense=cost[cur]+minExpense(cost,cur+2,len,mark);
mark[cur]=Math.min(firstExpense,secondExpense);
return mark[cur];
}
}
