题目:输入一个大数组拆分成和最接近的两个数组,并返回。
const arr = [1,23,544,64,47,56,12,456,32,12,132];
function twoArrSum(arr){
var arr1=[],arr2=[];
var sum1=0,sum2=0;
arr.sort((a,b)=>b-a); //必须从大到小排序。因为大数不需先保证分配正确,小数可不分配平均,差距拉不大
for(var i=0;i<arr.length;i++){
if(sum1<=sum2){
arr1.push(arr[i]);
sum1+=arr[i];
}else if(sum1>sum2){
arr2.push(arr[i]);
sum2+=arr[i];
}
}
return [arr1,sum1,arr2,sum2];
}
console.log(twoArrSum(arr));