0

我的数组有

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

我基本上是想实现下一个最短流程

喜欢这张照片

这是我尝试过的代码

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]);
                 }

                }

            }
4

0 回答 0