int[] nums = {8,7,6,2,0,8,3,5,1,9}; java.util.Arrays.sort(nums); for (int i = nums.length-1; i >=0 ; i--) { System.out.print(nums[i]+" "); } System.out.println(); List subA = new ArrayList(); List subB = new ArrayList(); long sumA = 0; long sumB = 0;
java.util.Arrays.sort(nums);
for (int i = nums.length-1; i >=0 ; i--) {
System.out.print(nums[i]+" ");
}
System.out.println();
List subA = new ArrayList();
List subB = new ArrayList();
long sumA = 0;
long sumB = 0;
List temp; for(int i=nums.length-1;i>=0;i--){
if(i%2 == 0){
subA.add(nums[i]);
sumA += nums[i];
}else{
subB.add(nums[i]);
sumB += nums[i];
//switch
temp = subA;
subA = subB;
subB = temp;
sumA = sumA ^ sumB;
sumB = sumA ^ sumB;
sumA = sumA ^ sumB;
}
}
System.out.println("subA="+subA+"sum="+sumA);
System.out.println("subB="+subB+"sum="+sumB);
System.out.println("subA-suB="+(sumA-sumB));
2.把最大的数移除 放进CB
3.记录差值
4.以后每次移除CA中最小的进入CB 并记录差 如果差值变大了那么将上一步的两组数组返回就这样啊