本文主要是介绍564.Backpack VI-背包问题 VI(中等题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
背包问题 VI
题目
给出一个无重复正整型数组,用其中数字任意组合(可重复使用),使得和等于给定的target的所有组合。
注意事项
不同的序列计做不同的组合。样例
如nums = [1, 2, 4], target = 4
所有组合方式如下:
[1, 1, 1, 1]
[1, 1, 2]
[1, 2, 1]
[2, 1, 1]
[2, 2]
[4]
return 6题解
public class Solution {/*** @param nums an integer array and all positive numbers, no duplicates* @param target an integer* @return an integer*/public int backPackVI(int[] nums, int target) {int[] dp = new int[target+1];dp[0] = 1;for (int i=1;i<=target;i++){for (int j=0;j<nums.length;j++){if (i >= nums[j])dp[i] += dp[i-nums[j]];}}return dp[target];}
}
Last Update 2016.10.7
这篇关于564.Backpack VI-背包问题 VI(中等题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!