javascript将一个数组分成两个数组,并使各数组和只差最小
程序员文章站
2022-03-10 09:45:54
...
当前测试数据均正确:若存在问题请指出
<script>
// var list = [1, 2, 3, 5, 8, 9, 10, 11]; //第一个数组
// var list = [11, 7, 2, 5, 9, 21]; //第二个数组
// var list = [1, 2, 3, 5, 9];//第三个数组
var list = [1, 4, 4, 2, 4, 2, 7];//第四个数组
list = list.sort(function(a,b){return b-a});//倒序
console.log(list);
// var num = 25; //第一个数组的中位数(取大的整值)
// var num = 28; //第二个数组的中位数(取大的整值)
// var num = 10; //第三个数组的中位数(取大的整值)
var num = 12; //第四个数组的中位数(取大的整值)
var arr1=[], arr2=[], arrSum1=0; arrSum2=0, m=0, n=0;
for(var i=0; i<list.length; i++) {
var data = list[i];
if(arrSum1 <= arrSum2 && (arrSum1 + data) <= num) {
arr1[m++] = data;
arrSum1 += data;
continue;
}
arr2[n++] = data;
arrSum2 += data;
}
console.log(arr1);
console.log(arr2);
</script>