首页 > 学院 > 开发设计 > 正文

416. Partition Equal Subset Sum

2019-11-06 06:07:30
字体:
来源:转载
供稿:网友

本题采用DP的方式(因为提示中建议采用DP)。其实完全可以采用sort+twoPoint的方式求解,也是一样的,反而时间复杂度要更加低一点。

class Solution {public: bool canPartition(vector<int>& nums) { int sum=0; for(int i=0;i<nums.size();i++) sum+=nums[i]; if(sum%2==1) return false; int half=sum/2; set<int> unique; for(int i=0;i<nums.size();i++) { set<int> newSet; for(set<int>::iterator it=unique.begin();it!=unique.end();it++) { newSet.insert(*it); newSet.insert(*it+nums[i]); } newSet.insert(nums[i]); unique.swap(newSet); if(unique.count(half)!=0) return true; } return false; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表