15 3Sum

来源:互联网 发布:fedora centos 很像吗 编辑:程序博客网 时间:2024/05/18 22:44
class Solution {public:    vector<vector<int>> threeSum(vector<int>& nums) {        vector<vector<int>> ans;        int n=nums.size();        if(n<3){            return ans;        }        sort(nums.begin(),nums.end());        for(int p=0;p<n-2;++p){            if(p>0&&nums[p]==nums[p-1]) continue;            int left=p+1;            int right=n-1;            while(left<right){                int m=nums[left]+nums[p]+nums[right];                if(m==0){                    vector<int> temp;                    temp.push_back(nums[p]);                    temp.push_back(nums[left]);                    temp.push_back(nums[right]);                    ans.push_back(temp);                    left++;                    right--;                    while(left<right&&nums[left]==nums[left-1]){                        left++;                    }                    while(left<right&&nums[right]==nums[right+1]){                        right--;                    }                }else if(m<0){                    left++;                    while(left<right&&nums[left]==nums[left-1]){                        left++;                    }                }else{                    right--;                    while(left<right&&nums[right]==nums[right+1]){                        right--;                    }                }            }        }        return ans;    }};
0 0
原创粉丝点击