当前位置:网站首页>力扣15-三数之和——HashSet&双指针法
力扣15-三数之和——HashSet&双指针法
2022-08-09 18:54:00 【张怼怼√】
题目描述
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。
注意:答案中不可以包含重复的三元组。
求解思路
因为题目答案中可能会有重复的三元组,所以需要对结果去重,但是发现集合set本身就不允许重复元素存在,所以采用HashSet来存储结果;
题目求解采用双指针法;
定义left和right,分别指向 i+1 和 nums.length-1 的元素,然后遍历nums,和之前一样;
这个地方需要注意当我们需要把普通的数组add进ArrayList需要做转换:Arrays.toList;
最后需要将HashSet转换为ArrayList,需要再做一次转换。
输入输出示例

代码
class Solution {
public List<List<Integer>> threeSum(int[] nums) {
Set<List<Integer>> res = new HashSet<>();
Arrays.sort(nums);
for(int i = 0; i < nums.length; i++){
int left = i + 1, right = nums.length - 1;
while(left < right){
if(nums[i] + nums[left] + nums[right] == 0){
res.add(new ArrayList<>(Arrays.asList(nums[i],nums[left],nums[right])));
left++;
right--;
}else if(nums[i] + nums[left] + nums[right] < 0){
left++;
}else{
right--;
}
}
}
List<List<Integer>> ress = new ArrayList<>(res);
return ress;
}
}边栏推荐
猜你喜欢
![[Free Column] Android Security for Peace Elite (FZ) APK Reverse Analysis](/img/22/a5129a310eec5ee1bf6f1cf90d05de.png)
[Free Column] Android Security for Peace Elite (FZ) APK Reverse Analysis

数据分散情况的统计图-盒须图

uniapp离线推送华为厂商申请流程
![[免费专栏] Android安全之Android应用的汉化功能(修改so中的字符串内容)](/img/f6/7901b2cf6812a02c34c182fe33dd16.png)
[免费专栏] Android安全之Android应用的汉化功能(修改so中的字符串内容)
![[免费专栏] Android安全之Android奇淫run-as命令](/img/d5/771802eb57f24c1cf88657f5c5a724.png)
[免费专栏] Android安全之Android奇淫run-as命令

leetcode二叉搜索树与双向链表

加工制造业智慧采购系统解决方案:助力企业实现全流程采购一体化协同

双屏协作更高效,华硕灵耀X 双屏Pro 2022创作体验再升级

听音识情绪 | 程序员手把手教你搭建神经网络,更快get女朋友情绪,求生欲max!

Abbkine TraKine Pro 活细胞微管染色试剂盒重要特色
随机推荐
MYSQL记录、自用
win10配置CenterNet环境
基于CC2530 E18-MS1-PCB Zigbee DIY作品
请问一下flink cdc mysql source 报这种错怎么处理呢?我都设置了useSSL=f
【Jmeter】分布式搭建
《评估、创建和使用知识图谱的限制》2022最新230页博士论文,根特大学
Flume (六) --------- Flume 数据流监控
C#/VB.NET: Extract text and pictures from PowerPoint document
基于设计稿识别的可视化低代码系统实践
时序攻击
[] free column Android run Android, her - as command of safety
基于CC2530 E18-MS1-PCB Zigbee DIY作品(二)
【kali-密码攻击】(5.1.1)密码在线破解:Hydra(图形界面)
看完这波 Android 面试题;助你斩获心中 offer
获取一段程序运行的时间
Toronto Research Chemicals盐酸乙环胺应用说明
小满nestjs(第四章 前置知识装饰器-实现一个GET请求)
[] free column Android dynamic debugging GDB APP of safety
新出现的去中心化科学能够为科学领域带来什么?
Toronto Research Chemicals加米霉素-d4说明书