当前位置:网站首页>力扣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;
}
}
边栏推荐
- 基于设计稿识别的可视化低代码系统实践
- Toronto Research Chemicals单羟基舒更葡糖钠说明书
- 环境:Flink版本:1.15.1jar包:flink-sql-connector-oracle
- 启动 CM agent 报错——ImportError: libssl.so.10: cannot open shared object file: No such file or directory
- 漏洞复现-redis未授权getshell
- 2022.08.06_每日一题
- Leetcode 739.每日温度 单调栈
- 《评估、创建和使用知识图谱的限制》2022最新230页博士论文,根特大学
- [] free column Android run Android, her - as command of safety
- Laravel之队列「建议收藏」
猜你喜欢
[免费专栏] Android安全之Xposed插件开发【从零手把手带】教程
[免费专栏] Android安全之Android奇淫run-as命令
Samsung's flagship discount is 1,800, Apple's discount is over 1,000, and the domestic flagship is only reduced by 500 to send beggars
[免费专栏] Android安全之Android应用的汉化功能(修改so中的字符串内容)
39. 组合总和 && 40. 组合总和2 && 216. 组合总和3
优秀的 Verilog/FPGA开源项目介绍(三十一)- OFDM
[免费专栏] Android安全之GDB动态调试APP
基于Web的疫情隔离区订餐系统
双屏协作更高效,华硕灵耀X 双屏Pro 2022创作体验再升级
【kali-密码攻击】(5.1.1)密码在线破解:Hydra(图形界面)
随机推荐
shell脚本编写 hash方法,shell中字符到ascii码或数字的转换
获取一段程序运行的时间
软件测试技术之如何编写测试用例(6)
WPF 实现带蒙版的 MessageBox 消息提示框
Fully automated machine learning modeling!The effect hangs the primary alchemist!
【kali-权限提升】(4.2.7)社会工程学工具包:权限维持创建后门、清除痕迹
移动端,PC端,微信等常用平台和浏览器判断
Swift--多条件排序
【二叉树】树的子结构
2022.08.05_每日一题
3D感知(二):单目3D物体检测
DP-Differential Privacy概念介绍
EsgynDB Troubleshooting - ERROR[2012] Server process tdm_arkesp could not becreated
[Free column] APK dynamic reverse application of Android security [Three Smali injection methods]
php安装make出现“collect2:error:ldreturned1exitstatus
不经意传输协议OT
小满nestjs(第六章 nestjs cli 常用命令)
ebook下载 | 《 企业高管IT战略指南——企业为何要落地DevOps》
mysql死锁的排查和解决
时序攻击