为了账号安全,请及时绑定邮箱和手机立即绑定

js-动态规划解决背包问题

标签:
JavaScript
var ary=[{weight:35,value:10},{weight:30,value:40},{weight:6,value:30},{weight:50,value:50},{weight:40,value:35},{weight:10,value:40},{weight:25,value:30}]

var testA=function(M,ary){
//建立备忘录
    var result;
    for(var i=0;i<=M;i++){
        result=result||[];
        for(var j=0;j<=ary.length;j++){
        result[i]=result[i]||[];
            result[i][j]=-1;
         }
    }
    console.log(result)
    var test=function(M,ary){
        if(result[M][ary.length]==-1){
         var  temp;
         var  data; 
        if(ary.length>0){
        temp=ary.shift();
          if(M>=temp.weight){
           data= Math.max(temp.value+test(M-temp.weight,ary),test(M,ary));
          }else{
           data=  Math.max(test(M,ary));
          }
        }else{
           data=  0; 
       }    
//写入备忘录
            result[M][ary.length]=data;
            return data;
    }else{
//备忘录取值
        return result[M][ary.length];
    }
  }
    return test(M,ary);
}

    alert(testA(150,ary))
点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消