时间复杂度O( )
class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
for(int i=0;i<nums.size();++i){
for(int j=0;j<nums.size()-i-1;++j){
if(nums[j+1]<nums[j]){
int tmp = nums[j+1];
nums[j+1] = nums[j];
nums[j] = tmp;
}
}
}
vector<vector<int>> result;
int one=-1,two=-1,three=-1;
for(int i=0;i<nums.size();++i){
if(i>0&&nums[i-1]==nums[i])continue;
int start = i+1;
int end = nums.size()-1;
if(nums[i]>0)break;
while(start<end){
if(nums[start]+nums[end]==0-nums[i]){
if(!(one==nums[i]&&two==nums[start]&&three==nums[end])){
one=nums[i];
two=nums[start];
three=nums[end];
vector<int> oneResult;
oneResult.push_back(nums[i]);
oneResult.push_back(nums[start]);
oneResult.push_back(nums[end]);
result.push_back(oneResult);
}
++start;
--end;
}else if(nums[start]+nums[end]>0-nums[i]){
--end;
}else {
++start;
}
}
}
return result;
}
};