携程最后一题,感觉可以AC
static int schedule(int m,int[] array) {
int[] sumarray=new int[array.length+1];
sumarray[0]=0;
for (int i=1;i<=array.length;i++){
sumarray[i]=sumarray[i-1]+array[i-1];
}
int[][] dp=new int[m+1][array.length+1];
for(int i=1;i<=array.length;i++){
dp[1][i]=sumarray[i];
}
for(int i=1;i<=m;i++){
dp[m][1]=sumarray[i];
}
for(int i=2;i<=m;i++){
for(int j=2;j<=array.length;j++){
dp[i][j]=Integer.MAX_VALUE;
for(int k=1;k<=j;k++){
int tmp=Math.max(dp[i-1][k],sumarray[j]-sumarray[k]);
dp[i][j]=Math.min(dp[i][j],tmp);
}
}
}
return dp[m][array.length];
} #携程##笔试题目#
