博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LintCode] 3Sum 三数之和
阅读量:6516 次
发布时间:2019-06-24

本文共 1539 字,大约阅读时间需要 5 分钟。

Given an array S of n integers, are there elements abc in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.

 Notice

Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)

The solution set must not contain duplicate triplets.

Example

For example, given array S = {-1 0 1 2 -1 -4}, A solution set is:

(-1, 0, 1)(-1, -1, 2)

LeetCode上的原题,请参见我之前的博客。

class Solution {public:        /**     * @param numbers : Give an array numbers of n integer     * @return : Find all unique triplets in the array which gives the sum of zero.     */    vector
> threeSum(vector
&nums) { vector
> res; sort(nums.begin(), nums.end()); for (int k = 0; k < nums.size() - 2; ++k) { if (nums[k] > 0) break; if (k > 0 && nums[k] == nums[k - 1]) continue; int target = 0 - nums[k], i = k + 1, j = nums.size() - 1; while (i < j) { if (nums[i] + nums[j] == target) { res.push_back({nums[k], nums[i], nums[j]}); while (i < j && nums[i] == nums[i + 1]) ++i; while (i < j && nums[j] == nums[j - 1]) --j; ++i; --j; } else if (nums[i] + nums[j] < target) ++i; else --j; } } return res; }};

本文转自博客园Grandyang的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
WebGoat学习——访问控制缺陷( Access Control Flaws)
查看>>
打印报表页码
查看>>
利用MsChart控件绘制多曲线图表
查看>>
LinearLayout
查看>>
Java中各个重要定义
查看>>
inline的小知识
查看>>
SpringMVC(1)
查看>>
Entity Framework 4 in Action读书笔记——第四章:使用LINQ to Entities查询:执行手动查询...
查看>>
Django_终端打印原生SQL语句
查看>>
mongoDB 数据库简介
查看>>
计算机资料摘文
查看>>
手机访问网站自动跳转到手机版
查看>>
zabbix3.4.7之Zabbix_Trigger_Function详解
查看>>
zabbix3.4.7Web页面监控
查看>>
PHP关于mb_substr不能起作用的问题
查看>>
ASM - ByteCode插件下载、安装以及相关遇到的问题
查看>>
java如何获取当前时间以及如何进行格式化?
查看>>
简单排序:冒泡、选择、插入
查看>>
项目管理理论与实践(6)——利用Excel制作项目文档的设计技巧
查看>>
辍学大学生入店抢劫“苹果”
查看>>