Description
Submission
class Solution { public: bool canPartition(vector<int>& nums) { if(nums.size() == 1) return false; int total = 0; for(auto num : nums) { total += num; } if(total % 2 == 1) return false; int target = total / 2; unordered_set<int> prev; prev.insert(0); for(auto num: nums) { unordered_set<int> added; for(auto p: prev) { if(p + num > target) { continue; } if(p+num == target) return true; added.insert(p+num); } for(auto a: added){ prev.insert(a); } } return false; } };