class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
vector<vector<int>> ret;
sort(nums.begin(), nums.end());
for(int i=0; i<nums.size(); ++i){
int j=i+1, k=nums.size() -1;
if(i&&nums[i] == nums[i-1])
continue;
while(j<k){
if(nums[j]+nums[k] == -nums[i]){
vector<int> temp;
temp.push_back(nums[i]);
temp.push_back(nums[j]);
temp.push_back(nums[k]);
ret.push_back(temp);
++j;
--k;
}
else if(nums[j]+nums[k] < -nums[i])
++j;
else
--k;
}
}
auto pos = unique(ret.begin(),ret.end());
ret.erase(pos,ret.end());
return ret;
}
};
知識點 unique函數
sort函數