如图,仅仅交换了入参位置,为什么得出的结果不同呢
import java.util.Arrays;
import java.util.Scanner;
public class 士兵过河 {
public static void main(String[] args){
Scanner in =new Scanner(System.in);
int n=in.nextInt();
int t= in.nextInt();
in.nextLine();
String[] str=in.nextLine().split(" ");
int[] num=new int[n];
int[] dp=new int[n];//j+1个人过河需要的最大时间
//Arrays.fill(dp,Integer.MAX_VALUE);
for(int i=0;i<n;i++){
num[i]=Integer.valueOf(str[i]);
}
Arrays.sort(num);
dp[0]=num[0];
if(num[0]>t){
System.out.println("0 0");
return;
}
dp[1]=bijiao(num[0],num[1]);
if(dp[1]>t){
System.out.println(1+" "+dp[0]);
return;
}
for(int i=2;i<n;i++){
dp[i]=Math.min(dp[i-1]+bijiao(num[0],num[i])+num[0],
dp[i-2]+num[0]+bijiao(num[i-1],num[i])+num[1]+bijiao(num[0],num[1]));
if(dp[i]>t){
System.out.println(i+" "+dp[i-1]);
return;
}
}
System.out.println(n+" "+dp[n-1]);
}
public static int bijiao(int b,int a){
if(a*10<b){
return a*10;
}
return b;
}
}