Java实现 LeetCode 15 三数之和
2024-09-06 04:10:00
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);
}
}
最新文章
- Android五岁了
- Xcode LLDB Debug教程
- Java的final关键字详解
- 在WPF中使用文件夹选择对话框
- [原创] JavaScript 图片放大镜插件 enlarge.js 以及移动版 enlarge.touch.js
- ubuntu下搭建cocos2dx编程环境-中
- 安装 ant
- WCF - Overview
- Eclipse中快捷键的使用
- Python3基础 list(enumerate()) 将一个列表的每一个元素转换成 带索引值的元组
- 博客已经迁移到 http://imbotao.top 也会同步到这儿
- 解决phpstudy在 cmd窗口输出 php5 中文显示乱码问题
- Android--UI之ImageView
- Summary (7Road)
- Shiro+CAS
- Java实验-课程设计报告一:个人银行账户管理系统SavingAccountManageSystem-具体文档+源码
- /etc/resolv.conf服务器客户端DNS重要配置文件
- 自然语言处理系列-1.什么是NLP?
- ASP.NET Web API使用示例
- 无线路由器硬件配置參数 NetGear篇
热门文章
- 设计模式之GOF23中介者模式
- 新抽象语法树(AST)给 PHP7 带来的变化
- sql查重去除id最小值
- urldecode二次编码
- swagger集成遇到的坑一个
- Spring全家桶之spring boot(二)
- spark机器学习从0到1支持向量机SVM(五)
- Proteus仿真时出现Cannot open‘C:\Users\...\LISA7605.SDF’的错误
- 13.3 Go章节练习题
- select 后台获取text 并根据text 设置value选中项