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

私は基本的に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]);
                 }

                }

            }
4

0 に答える 0