My Array有
P B A
---------
1 135 0
2 102 0
3 56 0
4 148 0
5 125 0
6 65 200
此数组目前已按此分类
3 56 0
2 102 0
5 125 0
1 135 0
4 148 0
6 65 200
使用此当前代码
Arrays.sort(x, new Comparator<int[]>() {
public int compare(int[] o1, int[] o2) {
int ret = Integer.compare(o1[2], o2[2]);
// if the entries are equal at index 2, compare index 1
if (0 == ret) {
ret = Integer.compare(o1[1], o2[1]);
}
return (ret);
}
});
我想要做的是订购数组的行,使其看起来像这样,取决于B
与A
行的总和。
P B A
3 56 0
2 102 0
5 125 0
6 65 200 <<-- this row was the one that alter
1 135 0
4 148 0
因此,当我们总和56 + 102 + 125 = 283> 200时,我们接下来会得到最小的行6 65 200
。
我基本上要实施Shortest Process Next
这是我试过的代码
int whencount=0;
ArrayList <Integer> m = new ArrayList<Integer>();
for(int e=0; e<myArr.length; e++){
whencount=whencount+myArr[e][1];
for(int i=0; i<myArr.length; i++){
if(myArr[i][2]>=whencount && myArr[e][2]>=whencount){
System.out.println("Process executed "+myArr[e][0]);
m.add(myArr[e][0]);
}
}
}