15. 三数之和

给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。

注意:答案中不可以包含重复的三元组。

示例:

给定数组 nums = [-1, 0, 1, 2, -1, -4],

满足要求的三元组集合为:

[

[-1, 0, 1],

[-1, -1, 2]

]

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/3sum

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
public List<List<Integer>> threeSum(int[] nums) {
Arrays.sort(nums); //对数组进行排序
HashSet<List<Integer>> Res=new HashSet<>(); //创建HashSet对象
for(int i=0;i<=nums.length-3;i++){
if(nums[i]>0)
break; //若数组中的最小数大于0,直接跳出循环
int left=i+1; //左指针
int right=nums.length-1; //右指针
while(left<right){
int s=nums[i]+nums[left]+nums[right];//三数之和
if(s<0){
left++; //小于0,左指针右移
}else if(s>0){
right--; //大于0,右指针左移
}else{
Res.add(Arrays.asList(nums[i],nums[left++],nums[right--])); //等于0,满足条件,记录下来
}
}
}
return new ArrayList<>(Res); }
}

最新文章

  1. Android五岁了
  2. Xcode LLDB Debug教程
  3. Java的final关键字详解
  4. 在WPF中使用文件夹选择对话框
  5. [原创] JavaScript 图片放大镜插件 enlarge.js 以及移动版 enlarge.touch.js
  6. ubuntu下搭建cocos2dx编程环境-中
  7. 安装 ant
  8. WCF - Overview
  9. Eclipse中快捷键的使用
  10. Python3基础 list(enumerate()) 将一个列表的每一个元素转换成 带索引值的元组
  11. 博客已经迁移到 http://imbotao.top 也会同步到这儿
  12. 解决phpstudy在 cmd窗口输出 php5 中文显示乱码问题
  13. Android--UI之ImageView
  14. Summary (7Road)
  15. Shiro+CAS
  16. Java实验-课程设计报告一:个人银行账户管理系统SavingAccountManageSystem-具体文档+源码
  17. /etc/resolv.conf服务器客户端DNS重要配置文件
  18. 自然语言处理系列-1.什么是NLP?
  19. ASP.NET Web API使用示例
  20. 无线路由器硬件配置參数 NetGear篇

热门文章

  1. 设计模式之GOF23中介者模式
  2. 新抽象语法树(AST)给 PHP7 带来的变化
  3. sql查重去除id最小值
  4. urldecode二次编码
  5. swagger集成遇到的坑一个
  6. Spring全家桶之spring boot(二)
  7. spark机器学习从0到1支持向量机SVM(五)
  8. Proteus仿真时出现Cannot open‘C:\Users\...\LISA7605.SDF’的错误
  9. 13.3 Go章节练习题
  10. select 后台获取text 并根据text 设置value选中项