题解 | #最小花费爬楼梯#一开始用scanner,可是耗时太多,就改用IO流。这该死的胜负欲
最小花费爬楼梯
http://www.nowcoder.com/practice/9b969a3ec20149e3b870b256ad40844e
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args)throws Exception{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int len=Integer.parseInt(br.readLine());
String[] str=br.readLine().split(" ");
int[] arr=new int[len];
for(int i=0;i<len;i++){
arr[i]=Integer.parseInt(str[i]);
}
System.out.print(helper(arr));
}
public static int helper(int[] num){
int[] dp=new int[num.length+1];
for(int i=2;i<=num.length;i++){
dp[i]=Math.min(dp[i-2]+num[i-2],dp[i-1]+num[i-1]);
}
return dp[num.length];
}
}
import java.io.*;
public class Main{
public static void main(String[] args)throws Exception{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int len=Integer.parseInt(br.readLine());
String[] str=br.readLine().split(" ");
int[] arr=new int[len];
for(int i=0;i<len;i++){
arr[i]=Integer.parseInt(str[i]);
}
System.out.print(helper(arr));
}
public static int helper(int[] num){
int[] dp=new int[num.length+1];
for(int i=2;i<=num.length;i++){
dp[i]=Math.min(dp[i-2]+num[i-2],dp[i-1]+num[i-1]);
}
return dp[num.length];
}
}