题解 | #三数之和#

三数之和

http://www.nowcoder.com/practice/345e2ed5f81d4017bbb8cc6055b0b711

class Solution {
public:
    vector<vector<int> > threeSum(vector<int> &num) {
        sort(num.begin(),num.end());
        if(num.size()<3) return {};
        if(num.size()==3 && num[0]+num[1]+num[2] == 0) return {num};
      
        vector<vector<int>> res;
        for(int i = 0;i<num.size();i++){
            int l = i+1,r = num.size()-1;
            while(l<r){
                if(num[l]+num[r]<-1*num[i]) l++;
                if(num[l]+num[r]>-1*num[i]) r--;
                if(num[l]+num[r]==-1*num[i] && l<r) {
                    res.push_back({num[i],num[l],num[r]});
                    while (num[l] == num[l + 1] && l+1<r)  l++;
                    while (num[r] == num[r - 1] && r-1>l)  r--;
                    l++;
                    r--;
                }
            }
            while (num[i] == num[i + 1] && i < num.size() - 2)   i++;
        }
        return res;
    }
};
全部评论

相关推荐

05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
秋盈丶:后续:我在宿舍群里和大学同学分享了这事儿,我好兄弟气不过把他挂到某脉上了,10w+阅读量几百条评论,直接干成精品贴子,爽
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务