动态规划-背包问题(给定容量获得最大的价值量)2

初写博客,如有欠佳之处还望大家海涵,下面评论提出及时改正
动态规划-背包问题(给定容量获得最大的价值量) ,相比上一篇的解题方法,该解题方法占用空间更大,代码量也比较多
思路:
1. 定义一个int[][]类型的数组,数组行数为两行,列数为输入(max_value)的最大容量,用于存贮当前状态和前一状态,以遍历的物品所在位置的奇偶区分
2. 遍历每个物品,每个物品只有放入和不放入两个状态,定义一变量表示当前的容量,如果当前容量小于物品所需要的容量,则直接把上一状态该容量的值直接赋给该容量的当前状态
3. 奇数状态存在二位数组的第0行,偶数存在第1行,后面的值相应的覆盖对应的行
4. 二维数组的最后一行的值就是容量值为1-(max_value)对应的最大价值量,最后一个元素就是所要求的结果

public class Test {
   
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        //the variable be used to save the max volume value
        int max_volume = input.nextInt();
        //the variable be used to save the good's kind
        int good_kind = input.nextInt();

        //the array be used to save every current bag's currently statue and forward statue
        int[][] numValue = new int[2][max_volume];
        //the array be
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值