LintCode:backpack VI
来源:互联网 发布:华中科技大学网络与远程教育 编辑:程序博客网 时间:2024/05/21 19:45
Backpack VI
注意事项
The different sequences are counted as different combinations.
Given nums = [1, 2, 4]
, target = 4
class Solution {
public:
/**
* @param nums an integer array and all positive numbers, no duplicates
* @param target an integer
* @return an integer
*/
int backPackVI(vector<int>& nums, int target) {
// Write your code here
sort(nums.begin(),nums.end());
vector<int> dp(target+1, 0);
dp[0] = 1;
for(int i=0; i<=target; i++)
{
for(auto num : nums)
{
if(i >= num)
dp[i] += dp[i-num];
}
}
return dp.back();
}
};
思路:target从1开始逐步向后求可能的组合数。dp[i]指target为i时的组合数。
if(i >= num)
dp[i] += dp[i-num];
这一步是关键,因为i能拆分为num和i-num的值,所以由num+(i-num)可能的种类为dp[i-num]。
- LintCode:backpack VI
- lintcode:Backpack
- [Lintcode]Backpack
- Backpack VI
- Backpack VI
- Lintcode - Backpack II
- 【LintCode】Backpack 背包问题
- LintCode Backpack(背包)
- lintcode backpack 背包问题
- LintCode_564 Backpack VI
- 【LintCode】 Backpack II 背包问题II
- LintCode Backpack II(背包II)
- LintCode Backpack III(背包III)
- Backpack
- backpack
- backpack
- backpack
- Backpack
- 限制范围的拖拽的简单实现及封装(含磁性吸附)
- leetcode: Search Insert Position
- 嵌入式概括
- JavaScript实现搜索框效果
- OBIEE创建Usage tracking
- LintCode:backpack VI
- Android studio2.2 execution failed: SymbolForDebug解决办法
- java自学之路4
- Android四大基本组件介绍与生命周期
- PHP框架之ThinkPHP研究(0)
- Listview刷新数据
- 面试题总结
- git学习笔记
- 结构体排序