给你一个整数数组 cost
,其中 cost[i]
是从楼梯第 i
个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。
你可以选择从下标为 0
或下标为 1
的台阶开始爬楼梯。
请你计算并返回达到楼梯顶部的最低花费。
dp[i]:表示达到下标i的最小花费
public static void main(String[] args) {
// TODO Auto-generated method stub
// int n;
Scanner sc=new Scanner(System.in);
System.out.println("请输入cost数组的长度n");
int n=sc.nextInt();
int[] cost=new int[n];
for(int a=0;a<n;a++) {
System.out.println("请输入第"+(a+1)+"个数的值");
int i=sc.nextInt();
cost[a]=i;
}
int[] dp=new int[n+1];
dp[0]=dp[1]=0;//下标为0和1的数的值为0
for(int i=2;i<=n;i++) {
dp[i]=Math.min(dp[i-1]+cost[i-1], dp[i-2]+cost[i-2]);//选择从0或者1开始爬楼梯的最小值
}
System.out.println(dp[n]);
}