LintCode : 背包问题 II
2016-01-27 17:07
337 查看
您在真实的面试中是否遇到过这个题?
Yes
哪家公司问你的这个题? Airbnb Alibaba Amazon Apple Baidu Bloomberg Cisco Dropbox Ebay Facebook Google Hulu Intel Linkedin Microsoft NetEase Nvidia Oracle Pinterest Snapchat Tencent Twitter Uber Xiaomi Yahoo Yelp Zenefits
感谢您的反馈
样例
对于物品体积[2, 3, 5, 7]和对应的价值[1, 5, 2, 4], 假设背包大小为10的话,最大能够装入的价值为9。
注意
A[i], V[i], n, m均为整数。你不能将物品进行切分。你所挑选的物品总体积需要小于等于给定的m。
标签
Expand
LintCode 版权所有
动态规划
背包问题
相关题目
Expand
解题思路:
典型的动态规划,和上一题的背包问题一致,状态方程有所修改而已
状态方程为 sum[ i ][ j ] = max(sum[ i ][ j-1 ],sum[ i -1 ][ j-A[ i ] ]+V[ i ])
背包问题的动态规划算法参考/article/3665226.html
背包问题 II
给出n个物品的体积A[i]和其价值V[i],将他们装入一个大小为m的背包,最多能装入的总价值有多大?您在真实的面试中是否遇到过这个题?
Yes
哪家公司问你的这个题? Airbnb Alibaba Amazon Apple Baidu Bloomberg Cisco Dropbox Ebay Facebook Google Hulu Intel Linkedin Microsoft NetEase Nvidia Oracle Pinterest Snapchat Tencent Twitter Uber Xiaomi Yahoo Yelp Zenefits
感谢您的反馈
样例
对于物品体积[2, 3, 5, 7]和对应的价值[1, 5, 2, 4], 假设背包大小为10的话,最大能够装入的价值为9。
注意
A[i], V[i], n, m均为整数。你不能将物品进行切分。你所挑选的物品总体积需要小于等于给定的m。
标签
Expand
LintCode 版权所有
动态规划
背包问题
相关题目
Expand
解题思路:
典型的动态规划,和上一题的背包问题一致,状态方程有所修改而已
状态方程为 sum[ i ][ j ] = max(sum[ i ][ j-1 ],sum[ i -1 ][ j-A[ i ] ]+V[ i ])
背包问题的动态规划算法参考/article/3665226.html
public class Solution { /** * @param m: An integer m denotes the size of a backpack * @param A & V: Given n items with size A[i] and value V[i] * @return: The maximum value */ public int backPackII(int m, int[] A, int V[]) { // write your code here if (A == null || 0 == A.length || m == 0) return 0; int len = A.length; int[][] sum = new int[len][m+1]; for(int i=0;i<len;i++){ sum[i][0] = 0; } for(int j=0;j<m+1;j++){ if(j>=A[0]){ sum[0][j] = V[0]; } } for(int i=1;i<len;i++){ for(int j=1;j<m+1;j++){ if(j>=A[i]){ sum[i][j] = max(sum[i-1][j], sum[i-1][j-A[i]]+V[i]); }else{ sum[i][j] = sum[i-1][j]; } } } return sum[len-1][m]; } public int max(int a, int b) { return a > b ? a : b; } }
相关文章推荐
- JavaScript Phishing
- 自然二进制和格雷码之间的转换
- C++指针
- java枚举与.net中的枚举区别
- (白书训练计划)UVa 120 Stacks of Flapjacks(构造法)
- JavaScript基础插曲—获取标签,插入元素,操作样式
- ubuntu开启SSH服务
- 编程时关于左右脑运用的感想
- Tomcat增加Context配置导致启动的时候项目加载两次
- solr Query
- 使用CCS(Code Composer Studio)建立一个例程
- delete obj$
- 将DataTable某一列的值整体赋值给 另一个DataTable
- IT girl
- 20145324寒假补考准备第一周
- ORA-28000: the account is locked-的解决办法
- mysql 5.7开启并行复制
- 如何提高高通AR的Image识别率
- ffmpeg/avconv 视频音频转码命令行工具
- solr的增删改查和高亮以及分组