欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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>