您的位置:首页 > 其它

3Sum

2015-07-18 16:12 218 查看
class Solution {

public:

vector<vector<int>> threeSum(vector<int>& nums) {

vector<vector<int>>result;

if(nums.size()<3) return result;

vector<int>ivec;

sort(nums.begin(),nums.end());

int len=nums.size();

int left=0,right=len-1;

int mid=left+1;

for(;left<len-2;left++)

{

while( left > 0 && left< len && nums[left] == nums[left-1])

left++;

mid=left+1;

right=len-1;

while(mid<right)

{

if(right < len - 1 && nums[right] == nums[right+1] )

{

right--;

continue; //循环;

}

if(nums[left]+nums[mid]+nums[right]>0)

right--;

else if(nums[left]+nums[mid]+nums[right]<0)

mid++;

else

{

result.push_back({nums[left],nums[mid],nums[right]});

mid++;

right--;

}

}

}

sort(result.begin(),result.end());

result.erase(unique(result.begin(),result.end()),result.end());

return result;

}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: