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

牛牛的三元组问题

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;
    }
};

全部评论

相关推荐

01-01 23:38
门头沟学院 Java
杭州同花顺 后端开发 1.5n左右
想当offer收割机的肖恩很爱刷美剧:现在这个环境,狠狠赚钱才是实际的,1是银行的子公司,技术很老,现在银行都在大规模降薪这种科技子公司肯定也在逐渐降薪,而且你也不好跳槽;2虽然钱比1多,但是各种福利待遇基本全无,加班时间可能跟1差不多,但是后续跳槽会比1好;3是大平台,而且钱确实给的很够,发展前景就不用看了,现在这个环境技术发展前景并不一定就好,非技术并不一定就差。个人认为3>2>1
点赞 评论 收藏
分享
2024-12-23 12:44
门头沟学院 Java
黑皮白袜臭脚体育生:简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能来写,如使用标签实现了兴趣推送,提升了用户黏性另外宣传下自己的开源仿b站微服务项目,GitHub已经390star,牛客上有完整文档教程,如果觉得有帮助的话可以点个小星星,蟹蟹
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务