SOURCE

// 有一堆整数,请把他们分成三份,确保每一份和尽量相等(11,42,23,4,5,6 4 5 6 11 23 42 56 78 90)


var a = [11, 42, 23, 4, 5, 6, 4, 5, 6, 11, 23, 42, 56, 78, 90]

function  oneToThreeArr(arr){
    let res = [{sum: 0, arr: []}, {sum: 0, arr: []}, {sum: 0, arr: []}]
    //从大到小排序,每次把最大的值给到和最小的数组中
    arr.sort((a,b) => b - a);
    arr.forEach(item => {
        let min = res.sort((a,b) => a.sum - b.sum)[0];//拿到当前和最小的那个数组
        min.sum += item;
        min.arr.push(item);
    })
    return res;
}
console.log(oneToThreeArr(a));
console 命令行工具 X clear

                    
>
console