美文网首页
背包问题全解

背包问题全解

作者: 小星star | 来源:发表于2021-03-13 13:02 被阅读0次

搞懂背包的关键
https://blog.csdn.net/XuNeely/article/details/112025393

空间优化的关键
https://blog.csdn.net/qq_xuanshuang/article/details/104031793

LintCode
problem 801 背包问题X
描述
你总共有n元,商人总共有三种商品,它们的价格分别是150元,250元,350元,三种商品的数量可以认为是无限多的,购买完商品以后需要将剩下的钱给商人作为小费,求最少需要给商人多少小费
样例 1:
输入: n = 900
输出: 0
样例 2:
输入: n = 800
输出: 0

进行了空间优化,运行length次,每运行一次,代表前i个能够组成的不大于j的最大值。
    public int Solution(int n) {
        int[] prices = new int[]{150, 250, 350};
        int length = prices.length;

        int[] dp = new int[n + 1];

        for(int i = 0; i < length; i++) {
            for(int j = 0; j <= n; j++) {
                if(i == 0) {
                    //i == 0 说明是第一次运行,进行初始化
                    if(j >= prices[i]) {
                        dp[j] = (j / prices[i]) * prices[i];
                    } else {
                        dp[j] = 0;
                    }
                } else {
                    if(j >= prices[i]) {
                        //这里一直出错!!!细心一点
                        //错误示例:dp[j] = Math.max(dp[j], dp[j - prices[i]]);
                        dp[j] = Math.max(dp[j], prices[i] + dp[j - prices[i]]);
                    }
                }
            }
        }
        return n - dp[n];
    }

相关文章

  • 背包问题全解

    搞懂背包的关键https://blog.csdn.net/XuNeely/article/details/1120...

  • 彻底理解0-1背包问题

    0-1背包问题概念 背包问题本质是个求最优解的问题:有个背包有V大小的空间可以存放物品,现在有n个物品,每个物品体...

  • Python与C++对溢出?处理的不同让我忽略了一个错误

    Python C++ 语言差异 数组溢出 算法 01背包问题 前言 第一次实现01背包问题的解,在python上先...

  • 动态规划

    1.什么是动态规划 背包问题的求最优解的方法,通过网格的形式将问题分解为子问题 2.哪些适用于动态规划 a.背包类...

  • 背包问题之0-1背包

    背包问题是典型的动态规划例子。我们可将子问题的解存储下来,以免计算其母问题时需用到子问题结果而重复计算。 问题阐述...

  • 背包问题(完全背包)

    动态规划合集: 1.矩阵链乘法2.投资组合问题3.完全背包问题4.01背包问题5.最长公共子序列 例题3——背包问...

  • Algorithm进阶计划 -- 动态规划(下)

    经典动态规划背包问题最长子序列问题 1. 背包问题 1.1 0-1 背包问题 0-1 背包问题,描述如下: 上面...

  • 背包问题

    0-1背包问题 问题 n个物体,它们各自有重量和价值,给定一个有容量的背包,如何让背包里装入的物体价值总和最大? ...

  • 背包问题

    问题描述 假如有一个能装下4磅的背包,如何从下列商品列表中选择商品填充背包,使价值达到最大: 动态规划 要解决背包...

  • 背包问题

    (1)0-1背包容量为10的背包,有5种物品,每种物品只有一个,其重量分别为5,4,3,2,1,其价值分别为1,2...

网友评论

      本文标题:背包问题全解

      本文链接:https://www.haomeiwen.com/subject/thdxcltx.html