サブ配列の和の差の最小値


この問題は汎微面経の評論の中で一人の兄が出会ったので、私のようなアルゴリズムのカラーペンにとってやはり書いたほうがいいです.

タイトル


配列の数は2つのグループに分けられ,2つのグループの和の差の絶対値が最小になるアルゴリズムを与えた.配列中の数の取値範囲は0、例えばa[]={2,4,5,6,7}であり、得られた2組の数{2,4,,6}と{5,7},abs(sum(a 1)−sum(a 2))=0である.例えば{2,5,6,10},abs(sum(2,10)−sum(5,6))=1であるため,得られた2組の数はそれぞれ{2,10}と{5,6}である.
  :https://www.nowcoder.com/questionTerminal/1fb223d0e46e481baec6897f5955c45a
  :   

	public static int KnapSack(int num, int weight[], int value[], int x[], int C){
        int V[][] = new int[C+1][C+1];
        for(int i = 0 ; i <= num ; i++ ){
            V[i][0] = 0; //     0;
        }
        for(int j = 0 ; j <=C ; j++){
            V[0][j]=0;    //     0
        }
        for(int i = 1 ; i <= num-1 ; i++){
            for(int j = 1 ; j <=C ; j++){
                //        i   ,           ,           
                if(j0; i--){
            if(V[i][j]>V[i-1][j]){
                x[i]=1;
                j=j-weight[i];
            }
            else
                x[i]=0;
        }
        System.out.println("      :");
        for(int i = 1 ; i < num ; i++){
            System.out.print(x[i]+" ");            
        }
        return V[num-1][C];        
    }