当前位置:网站首页>力扣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;
}
}边栏推荐
- Openharmony Lightweight System Experiment--GPIO Lighting
- php安装make出现“collect2:error:ldreturned1exitstatus
- 为什么maxcompute的数据导入到mysql会乱码?mysql的表是udf8mb4的编码
- PyTorch框架的 torch.cat()函数
- Leetcode 739.每日温度 单调栈
- laravel之phpunit单元测试
- Transformer如何用于3D视觉?阿联酋MBZUAI最新《3D视觉Transformers处理》综述,涵盖100+种方法
- [免费专栏] Android安全之安卓APK浅析
- IDEA tools commonly used configuration
- 移动端,PC端,微信等常用平台和浏览器判断
猜你喜欢

ebook下载 | 《 企业高管IT战略指南——企业为何要落地DevOps》

【kali-权限提升】(4.2.7)社会工程学工具包:权限维持创建后门、清除痕迹

嵌入式开发:使用FILL提高代码完整性

数学建模——模拟退火

leetcode 503.下一个更大元素II 单调栈

Toronto Research Chemicals盐酸乙环胺应用说明

C#/VB.NET: Extract text and pictures from PowerPoint document

2022.08.05_每日一题

Haven't tried line art videos this year??

基于Web的疫情隔离区订餐系统
随机推荐
shell之变量详解,让你秒懂!
Laravel DB批量更新的方法
php删除字符串的空格
一图详解沃土云创计划高校教师参与全流程
韩国严厉监管元宇宙相关企业
Tims中国上市进入倒计时:年亏3.8亿 估值降至14亿美元
IDEA tools commonly used configuration
C#/VB.NET: Extract text and pictures from PowerPoint document
力扣 899. 有序队列
鲜花线上销售管理系统的设计与实现
基于CC2530 E18-MS1-PCB Zigbee DIY作品(二)
为什么数字钱包需要引入小程序生态
mysql 重复数据 分组 多条最新的记录
DP-Differential Privacy概念介绍
日期及时间处理包 Carbon 在 Laravel 中的简单使用[通俗易懂]
competed中访问ref为undefined
ebook下载 | 《 企业高管IT战略指南——企业为何要落地DevOps》
《评估、创建和使用知识图谱的限制》2022最新230页博士论文,根特大学
hdu 2647 Reward(拓扑排序)
[免费专栏] Android安全之Android应用的汉化功能(修改so中的字符串内容)