题解 | #牛牛的三元组问题#

牛牛的三元组问题

https://www.nowcoder.com/practice/72c6d735fb1144a2ba162976a4510839

该题就是三数之和为模板的题

    vector<vector<int> > findTriplets(vector<int>& num) {
        // write code here
        vector<vector<int>> res;
        if(num.size()<3) return res;
        sort(num.begin(),num.end());
        for(int i=0;i<num.size()-2;i++){
            if(num[i]==num[i-1] && i) continue;
            int l=i+1,r=num.size()-1;
            while (l<r) {
                if (num[l]+num[r]==-num[i]) {
                    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--;
                }else if (num[l]+num[r]>-num[i]) {
                    r--;
                }else l++;
            }

        }
        return res;
    }
};

全部评论

相关推荐

04-29 22:35
门头沟学院 Java
牛友说改了名字能收到offer:旧图新发查看图片
点赞 评论 收藏
分享
刘湘_passion:太强了牛肉哥有被激励到
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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