class Solution {
public:
vector> threeSum(vector& nums) {
vector>out;
if(nums.empty())return out;
int n=nums.size();
unordered_sethashset;
if(n<3)return out;
for(int i=0;i
unordered_sethashmap;
for(int j=i+1;j
vectorb;
auto it=hashmap.find(-nums[i]-nums[j]);
if(it!=hashmap.end()){
b.emplace_back(nums[i]);
b.emplace_back(*it);
b.emplace_back(nums[j]);
sort(b.begin(),b.end());
string s;
for(int k:b)s+=to_string(k);
if(!hashset.count(s)){
out.emplace_back(b);
hashset.insert(s);
}
}
else hashmap.insert(nums[j]);
}
}
return out;
}
};
超时,待更新。。。



