Leetcode 416. Partition Equal Subset Sum (Medium) (cpp)

来源:互联网 发布:电子书架软件 编辑:程序博客网 时间:2024/05/16 01:20

Leetcode 416. Partition Equal Subset Sum (Medium) (cpp)

Tag: Dynamic Programming

Difficulty: Medium


/*416. Partition Equal Subset Sum (Medium)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:Each of the array element will not exceed 100.The array size will not exceed 200.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.*/class Solution {public:bool canPartition(vector<int>& nums) {int sum = accumulate(nums.begin(), nums.end(), 0);if (sum & 1) {return false;}sum >>= 1;bool t[sum + 1] = { false };t[0] = true;for (int i = 0; i < nums.size(); i++) {for (int j = sum; j >= nums[i]; j--) {if (t[j]) {break;}t[j] = t[j] || t[j - nums[i]];}}return t[sum];}};


0 0
原创粉丝点击