[leetcode] 416. Partition Equal Subset Sum 解题报告
来源:互联网 发布:虚拟机 ubuntu 屏幕 编辑:程序博客网 时间:2024/04/30 07:43
题目链接:https://leetcode.com/problems/partition-equal-subset-sum/
Given a non-empty array containing only positive integers, find if the array can be partitioned into two subsets such that the sum of elements in both subsets is equal.
Note:
Both the array size and each of the array element will not exceed 100.
Example 1:
Input: [1, 5, 11, 5]Output: trueExplanation: The array can be partitioned as [1, 5, 5] and [11].
Example 2:
Input: [1, 2, 3, 5]Output: falseExplanation: The array cannot be partitioned into equal sum subsets
思路:一个背包的题目,背包容量为数组中元素和的一半+1,这样只要看是否有元素可以正好填满背包即可.但是每个元素只能用一次,所以在尝试放一个元素的时候还要避免他对尝试放其他位置时对自己的影响.所以在尝试放一个元素到背包的时候需要从容量最大的位置开始,如果(当前位置-当前元素大小)位置可以通过放置之前的元素达到,则当前位置也可以通过放置当前元素正好达到这个位置.状态转移方程为:dp[i] = dp[i] || dp[i - nums[k]];
代码如下:
class Solution {public: bool canPartition(vector<int>& nums) { int sum = accumulate(nums.begin(), nums.end(), 0); if(sum&1) return false; vector<int> dp(sum/2+1, 0); for(int i = 0, dp[0] = 1; i < nums.size(); i++) { for(int j = sum/2; j >= nums[i]; j--) dp[j] = dp[j] || dp[j-nums[i]]; } return dp[sum/2]; }};
0 0
- [leetcode] 416. Partition Equal Subset Sum 解题报告
- [LeetCode] 416. Partition Equal Subset Sum 解题报告
- [Leetcode] 416. Partition Equal Subset Sum 解题报告
- Partition Equal Subset Sum解题报告
- Leetcode 416. Partition Equal Subset Sum 对半分 解题报告【修正版】
- Leetcode-416. Partition Equal Subset Sum
- LeetCode—416. Partition Equal Subset Sum
- Leetcode 416. Partition Equal Subset Sum
- 【leetcode】416. Partition Equal Subset Sum
- 【LeetCode】416. Partition Equal Subset Sum
- 【LeetCode】416. Partition Equal Subset Sum
- LeetCode 416. Partition Equal Subset Sum
- 【LeetCode】416. Partition Equal Subset Sum
- Leetcode 416. Partition Equal Subset Sum[medium]
- [LeetCode]416. Partition Equal Subset Sum
- 【LeetCode】 416. Partition Equal Subset Sum
- Leetcode 416. Partition Equal Subset Sum
- Leetcode-416. Partition Equal Subset Sum
- [leetcode] 409. Longest Palindrome 解题报告
- Leetcode 236. Lowest Common Ancestor of a Binary Tree
- C# POST
- [leetcode] 415. Add Strings 解题报告
- 从栈的分配例子来看malloc分配内存的问题
- [leetcode] 416. Partition Equal Subset Sum 解题报告
- C语言的布尔类型bool
- windows安装clapack
- Maven Pom 文件中的隐式依赖导致Jar冲突
- 小菜鸟用visual studio写c++的种种
- maven 排除第三方jar包中pom文件中的依赖引用包
- Longest Increasing Path in a Matrix
- springmvc 中@Controller和@RestController的区别
- EventBus使用