[LeetCode]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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
思路:升序排序,遍历操作数1(当它<=0),
{用双指针l、r遍历右侧,当sum=0,放入集合;当sum>0,r--; 当sum<0,l++特判:数组长度小于3
注意:对三个操作数的去重
相关
Arrays.sort(arr[]); //对原数组排序
Arrays.asList(elm1,elm2,elm3...) //return new ArrayList(elm1,elm2,elm3..); //返回承装这些元素的ArrayList
代码
class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
        List<List<Integer>> ansList= new LinkedList<>();
        Arrays.sort(nums);
        for(int i=0;i<nums.length-2;++i){ //操作数1
            if(i!=0&&nums[i]==nums[i-1]){ //去重
                continue;
            }
            int l=i+1,r=nums.length-1; //操作数2、3
            while(l<r){
                int sum=nums[i]+nums[l]+nums[r];
                if(sum==0){
                    ansList.add(Arrays.asList(nums[i],nums[l],nums[r]));
                    while(l+1<r&&nums[l+1]==nums[l]){l++;} //去重
                    while(r-1>l&&nums[r-1]==nums[r]){r--;} //去重
                    l++;
                    r--;
                }else if(sum<0){
                    l++;
                }else{
                    r--;
                }
            }
        }
        return ansList;
    }
}
												
											[LeetCode]15. 三数之和(数组)(双指针)的更多相关文章
- Java实现 LeetCode 15 三数之和
		
15. 三数之和 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以 ...
 - LeetCode 15. 三数之和(3Sum)
		
15. 三数之和 15. 3Sum 题目描述 Given an array nums of n integers, are there elements a, b, c in nums such th ...
 - LeetCode——15. 三数之和
		
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以包含重复的三元组. ...
 - LeetCode 15. 三数之和(3Sum)
		
题目描述 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以包含重复 ...
 - [Leetcode 15]三数之和 3 Sum
		
[题目] Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? ...
 - [LeetCode] 15. 三数之和
		
题目链接:https://leetcode-cn.com/problems/3sum/ 题目描述: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a ...
 - LeetCode:三数之和【15】
		
LeetCode:三数之和[15] 题目描述 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的 ...
 - 代码随想录第七天| 454.四数相加II、383. 赎金信 、15. 三数之和 、18. 四数之和
		
第一题454.四数相加II 给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 <= i, ...
 - 【LeetCode】三数之和【排序,固定一个数,然后双指针寻找另外两个数】
		
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以包含重复的三元组. ...
 
随机推荐
- CPF 入门教程 - 数据绑定和命令绑定(二)
			
CPF netcore跨平台UI框架 系列教程 CPF 入门教程(一) CPF 入门教程 - 数据绑定和命令绑定(二) 数据绑定和Wpf类似,支持双向绑定.数据绑定和命令绑定是UI和业务逻辑分离的基础 ...
 - Android   java.lang.SecurityException: Permission Denial
			
报错: java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE ...
 - ms14-064漏洞复现
			
本博客最先发布于我的个人博客,如果方便,烦请移步恰醋的小屋查看,谢谢您! 这是我在实验室学习渗透测试的第五个漏洞复现,一个多小时便完成了.学长给的要求只需完成查看靶机信息.在指定位置创建文件夹两项操作 ...
 - 完全基于 Java 的开源深度学习平台,亚马逊的大佬带你上手
			
本文适合有 Java 基础的人群 作者:DJL-Lanking HelloGitHub 推出的<讲解开源项目>系列.有幸邀请到了亚马逊 + Apache 的工程师:Lanking( htt ...
 - 冒泡排序(Bubble Sorting)
			
基本介绍 时间复杂度O(n^2) 冒泡排序(Bubble Sorting)的基本思想是:通过对待 排序序列从前向后(从下标较小的元素开始),依次比较 相邻元素的值,若发现逆序则交换,使值较大 的元素逐 ...
 - Combining STDP and Reward-Modulated STDP in Deep Convolutional Spiking Neural Networks for Digit Recognition
			
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract 灵长类视觉系统激发了深度人工神经网络的发展,使计算机视觉领域发生了革命性的变化.然而,这些网络的能量效率比它们的生物学对 ...
 - Vue的Options
			
el:挂载点 与$mount有替换关系 new Vue({ el: "#app" }); new Vue({}).$mount('#app') 注:被你选为挂载点的那个元素,如果在 ...
 - SpringBoot(19)---SpringBoot整合Apollo
			
SpringBoot(19)---SpringBoot整合Apollo 有关Apollo之前已经写了两篇文章: 1.[Apollo](1)--- Apollo入门介绍篇 2.[Apollo](2)-- ...
 - 一个简单的Android音乐播放器
			
Android小白的期末作业 Android期末项目,仅用作学习使用,在线音乐部分只获取了网易云热歌榜,API来自鼻子亲了脸 传送门: GitHub 参考: anddiencn 实现功能 展示出本地的 ...
 - Kafka与RabbitMQ区别
			
RabbitMQ 和 Kafka 的显著差异 RabbitMQ 是一个消息代理,但是 Apache Kafka 是一个分布式流式系统.好像从语义上就可以看出差异,但是它们内部的一些特性会影响到我们是否 ...