怎么在数组中选取一些数,使得选取的数字的和最接近一个给定的数?

怎么在数组中选取一些数,使得选取的数字的和最接近一个给定的数?

 //查找数组num中与based的值最为接近的几个数字;
var num=new Array(1,3,4,5,6,8,9,14,20,23,31,55,99)
var nearly=new Array(100,100,100);
function jisuan(){
    var base=15;
    var swap;
    for (var i = 0; i <num.length; i++) {
        var s=check(num[i],base)
        for(var j=0;j<nearly.length;j++){
            if(s<check(nearly[j],base))
            {
                swap=num[i];
                num[i]=nearly[j];
                nearly[j]=swap;
            }
        }
    }
    console.log(nearly)
}
function check(i,j){
    if(i>j){
    return i-j;
    }else{
        return j-i;
    }

}

js写的,虽然没见你采纳过答案,问了几个月的数组问题,我都认得这个ID了

使用动态规划求解,对当前每个数字取或者不取设置状态转移方程