Backpack VI
来源:互联网 发布:美国失业金人数数据 编辑:程序博客网 时间:2024/06/03 17:53
题目描述:
Given an integer array nums with all positive numbers and no duplicates, find the number of possible combinations that add up to a positive integer target.
注意事项
The different sequences are counted as different combinations.
样例
Given nums = [1, 2, 4], target = 4
The possible combination ways are:
[1, 1, 1, 1]
[1, 1, 2]
[1, 2, 1]
[2, 1, 1]
[2, 2]
[4]
return 6
题目分析:
典型的动态规划问题,状态转移方程:
dp[x+y]+=dp[x]
我们需要一个一维数组dp,其中dp[i]表示目标数为i的解的个数,然后我们从1遍历到target,对于每一个数i,遍历nums数组,如果
i>=x, dp[i] += dp[i - x]
Python代码
class Solution: # @param {int[]} nums an integer array and all positive numbers, no duplicates # @param {int} target an integer # @return {int} an integer def backPackVI(self, nums, target): # Write your code here dp=[0]*(target +1) dp[0]=1 for x in range(target +1): for y in nums: if x+y<=target: dp[x+y]+=dp[x] return dp[target]
0 0
- Backpack VI
- Backpack VI
- LintCode_564 Backpack VI
- LintCode:backpack VI
- Backpack
- backpack
- backpack
- backpack
- Backpack
- 564.Backpack VI-背包问题 VI(中等题)
- 九章算法 | Facebook 面试题 : Backpack VI 背包算法
- [刷题]Backpack
- backpack ii
- backpack-ii
- DP -----Backpack
- lintcode:Backpack
- [Lintcode]Backpack
- #92 Backpack
- 30岁整,跨上战马,再启征程-2016.12
- 2016-12-12 STL大法
- Leetcode Linked List Cycle
- 全栈必备 敏捷基础
- 2016-12-10 dfs简单总结
- Backpack VI
- 2016-12-10 二分法简单总结
- Cloudera 公司研发工程师,Kudu 发明人Todd Lipcon:Kudu,Storage for Fast Analytics on fast Data
- PV、UV、IP分别是什么意思
- 2016-12-10 线性筛法求素数
- dingyeye loves stone
- VLC一--零阶指数哥伦布码解码原理和实现
- poj 1704 Georgia and Bob (阶梯博弈)
- Druid (大数据实时统计分析数据存储)