简单的组合问题
class Solution {
public:
bool canPartition(vector<int>& nums) {
set<int> s;
int total=0;
for(int i=0;i<nums.size();i++)
{
total+=nums[i];
}
if(total%2)
return false;
for(int i=0;i<nums.size();i++)
{
set<int> t=s;
for(set<int>::iterator q=s.begin();q!=s.end();q++)
{
t.insert(nums[i]+*q);
if(nums[i]+*q==total/2)
return true;
}
t.insert(nums[i]);
if(total/2==nums[i])
return true;
s=t;
}
return false;
}
};