leetcode_15. 3Sum-求数组中三个数和为0

leetcode解题之 15. 3Sum Java版(结果为目标值的三个数字) 阅读详情

Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.

Note: The solution set must not contain duplicate triplets.

For example, given array S = [-1, 0, 1, 2, -1, -4],

A solution set is:
[
[-1, 0, 1],
[-1, -1, 2]
]
把所有满足条件的三元组都要列出来!

思路:先排序,比如先把第一个元素定为nums[i]时,让后面两个元素和为(-1)*nums[i],转化为两元素和的问题。
遇到相同的元素就跳过去!

    public List<List<Integer>> threeSum(int[] nums) {

        List<List<Integer>> my = new ArrayList<>();
        Arrays.sort(nums);
        for(int i=0;i<=nums.length-3;i++)
            if(nums[i]<=0){
                if(i>=1 && nums[i]==nums[i-1])
                    continue;               
                int j=i+1;
                int k=nums.length -1;
                while(j<k){
                    if(nums[i]+nums[j]+nums[k]==0)
                    {
                        List<Integer> one = new ArrayList<>();
                        one.add(nums[i]);
                        one.add(nums[j]);
                        one.add(nums[k]);
                        my.add(one);    
                        j++;
                        k--;
                        while(j<k && nums[j]==nums[j-1])
                            j++;
                        while(j<k && nums[k]==nums[k+1])
                            k--;
                    }

                    else {
                        boolean flag =true;
                        // 求有序数组中两个数的和为(-1)*nums[i]
                        while(flag){
                            while(j<k && nums[j]+nums[k]>(-1)*nums[i])
                                k--;
                            while(j<k && nums[j]+nums[k]<(-1)*nums[i])
                                j++;
                            if( j>=k || nums[j]+nums[k]==(-1)*nums[i])
                                flag = false;
                        }
                    }

                }   // while(j<k)


            }

        return my;
    }
LeetCode 15. 3Sum -- 数组中某三个元素之和为0,输出这三个元素的值,且这个三元组唯一 Given an arraySofnintegers, are there elementsa,b,cinSsuch thata+b+c= 0? Find all unique triplets in the array which gives the sum of zero. Note:The solution set must not contain 阅读详情

相关推荐

找出数组3个数字相加为0的组合

给定一个数组,找出其中3个相加等于0的组合

数组中和为0的三个数字

所以这道题我们可以先排序,然后固定一个数i,然后该题就转换为在排序数组中查找和为-i的两个数。排序算法时间复杂度一般为O(nlogn),排序数组中找出和为给定值的方法时间复杂度为O(n),由于要固定数组中每个数字,故查找三元组的时间复杂度为O(n^2),所以总体时间复杂度为O(nlogn)+O(n^2),仍是O(n^2)。输入一个数组,如何找出数组中所有和为0的3个数字的三元组?例如,在数组[-1,0,1,2,-1,-4]中有两个三元组的和为0,它们分别是[-1,0,1]和[-1,-1,2]。

w17319185551的博客 882

从零到一:ArduPilot无人船PID调参实战指南

本文详细介绍了ArduPilot无人船PID调参的实战指南,从基础参数设定到高级调参技术,帮助用户掌握水面环境下的PID控制逻辑。通过案例分析和参数示例,解决无人船在空载、负载变化及不同水域环境中的航行问题,提升无人船的稳定性和精确度。

weixin_29266647的博客 507

在数组中找出3个数使得它们和为0

题目: 给定一个集合S,试找出3个数a, b, c,使得a+b+c=0。也即从集合中找出所有的和为0的3个数。 例如:集合S={-1,0, 1, 2, -1, 4},则满足条件的3个数有2对:(-1, 0, 1)和(-1, 2, -1)。注意(-1,1,0)与(-1,0,1)算同一个解,所以不用重复考虑。当然该例子集合的解也可以写成:(0, 1, -1)和(2, -1, -1)。

__七把刀__ 6825

CLion与STM32CubeMX联调:JLink GDB Server高效调试指南

本文详细介绍了如何搭建并配置CLion、STM32CubeMX与JLink GDB Server联调的现代化STM32开发环境。通过一站式环境搭建、工程创建、核心调试配置及高级技巧(如RTT日志),该组合实现了高效的代码编辑、可视化配置与稳定调试,大幅提升嵌入式开发效率与体验。

web99的专栏 258

XTDrone——ALOAM与3D激光雷达三维SLAM(处理没有点云和坐标系报错的问题)

本文介绍了XTDrone中配置如何在三维环境中使用A-LOAM算法配合velodyneHDL32激光雷达包括依赖包安装、代码修改和PX4系统配置,以及相关报错细节的注意事项。

weixin_45390670的博客 1327

一个整型数组,求任意三个元素和为0的集合,不能重复。

最近在研究leetcode上的算法,厌倦了天天修修补补的工作,准备换个环境开始新的码农生活。 既然要换个环境,那就要有所准备,算法是必须的,所以没事儿刷刷leetcode,学习下别人的编程思维,加快编程的速度,避免常见的BUG。记录的过程也是学习和加深理解的过程,以防以后不时之需方便查阅。废话不多说,直接上题。 1.原文的题目是: Given an arraynumsofninteg...

luofabo1987的专栏 1211

告别手动拍照!用Python+JAKA机械臂+D455相机实现全自动手眼标定(附完整代码)

本文详细介绍了如何利用Python脚本实现JAKA机械臂与Intel RealSense D455相机的全自动手眼标定流程,提供从硬件配置到代码实现的完整解决方案。通过自动化标定,显著提升工业自动化中的精度和效率,适用于机器人视觉领域的二次开发需求。

weixin_30555125的博客 523

三数之和等于零

给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1: 输入:nums = [-1,0,1,2,-1,-4] 输出:[[-1,-1,2],[-1,0,1]] 示例 2: 输入:nums = [] 输出:[] 示例 3: 输入:nums = [0] 输出:[] 来源:力扣(LeetCode) 因为求三个数的和,所以直接多个循环使用...

osillto的博客 1274

遥感大模型之Prithvi的关键技术解读

Prithvi系列模型开创了遥感领域基础模型新范式,通过海量多源时空数据(HLS和SAR)与Vision Transformer架构的深度融合,采用掩码自编码器进行自监督预训练,实现了强大的地球观测表征能力。该技术体系突破传统方法在全局建模、多模态融合和时空分析上的局限,仅需少量标注数据即可在土地分类、灾害监测等任务上取得优异表现。从初代3亿参数到Prithvi-EO-2.0的10亿参数升级,展现了模型可扩展性,为构建地球数字孪生智能基座奠定基础。

panshengwu的博客 867

从 VS Code 登录 ABAP Destination,一次把前后端连接跑通

最近很多 ABAP 开发者开始把 VS Code 纳入日常开发环境,原因很直接,VS Code 的轻量体验、命令面板、文件树、插件生态和 AI 编程能力,已经深深影响了现代开发者的工作方式。SAP 官方发布的 ABAP Development Tools for VS Code,也把 ABAP Cloud 开发模型带进了这个编辑器里。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 227

Leetcode 15. 3Sum 三数之和

Leetcode 15. 3Sum 三数之和 标签(空格分隔): Leetcode 题目地址:https://leetcode-cn.com/problems/3sum/ 题目描述 给定一个包含 n 个整数的数组&nbsp;nums,判断&nbsp;nums&nbsp;中是否存在三个元素 a,b,c ,使得&nbsp;a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中...

CoderWangSon 196

Claude Code 100个真实案例 - 用AI搭建LangChain多工具Agent(自主搜索+查询)

本案例展示如何使用 Claude Code 搭建一个 LangChain 多工具 Agent 系统。Agent 能够自主决定调用搜索引擎、数据库查询、天气查询、计算器等工具,像人类助手一样拆解问题并逐步解决。

yueyeguzhuo的专栏 560

LeetCode 15 3Sum 找出数组里面3个数的和等于指定值。

题目:Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero. Note: Elements in a tripl

大三狗现在才努力还不算晚吧?! 4179

大数据数据埋点技术面试题及参考答案(持续更新)

事件:指的是用户执行的具体动作,如页面浏览、按钮点击、商品购买等。事件是触发数据记录的直接原因,是分析用户行为的关键点。属性:是与事件相关的额外信息,可以提供关于事件的更多上下文。例如,用户点击的按钮颜色、大小、页面位置等。属性有助于更细致地分析用户行为,理解事件发生的具体情境。事件和属性共同构成了数据埋点的数据模型,它们使得收集的数据具有可分析性,从而可以用于深入理解用户行为和优化产品。

大模型大数据攻城狮的专栏 2097

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【LeetCode】15. 3Sum

我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI 微信公众号介绍:Microstrong(小强)同学主要研究机器学习、深度学习、计算机视觉、智能对话系统相关内容,分享在学习过程中的读书笔记!期待您的关注,欢迎一起学习交流进步! 知乎主页:https://www.zhihu.com/people/MicrostrongAI/activities Git...

Microstrong 483

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Leetcode15. 3Sum

Leetcode15. 3Sum Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero. Note: The solution s...

magic_jiayu的博客 195

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

LeetCode:15. 3Sum 三数之和(C语言)

题目描述: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ] 来源:力扣(LeetCod...

C/C++攻城狮 1077

LeetCode 15. 3Sum

LeetCode 15. 3Sum题目要求:给出一个整型数组S。找出里面所有的a,b,c使得a+b+c=0,要求每组数据不能完全相同。 题目给出的框架如下:class Solution { public: vector<vector<int>> threeSum(vector<int>& nums) { } };解题思路3Sum与2Sum的思路是一致的,都是先进行排序,然后采用首尾两

DanielRichard的博客 409

[leetcode] 15. 3Sum 解题报告

题目链接:https://leetcode.com/problems/3sum/ Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of ze

小榕流光的专栏 694

[leetcode]15. 3Sum

15. 3SumDescriptionAnalysisCode Description Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of ...

annazzz的博客 177

【Array-medium】15. 3Sum 三个数相加等于 0

1. 题目原址 https://leetcode.com/problems/3sum/ 2. 题目描述 3. 题目大意 给定一个数组,返回所有三个数相加和为0的序列 4. 解题思路 首先将数组排序 如果当前元素大于0,那么就不能存在三个数的和为0的序列,直接返回null即可。 为了保证不加入重复的 list,因为是有序的,所以如果和前一个元素相同,只需要继续后移就可以 i==0,正常寻找另两个...

想当厨子的程序媛 327

[LeetCode] 15. 3Sum

题目内容 给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 https://leetcode-cn.com/problems/3sum/ Given an arraynumsofnintegers, are there elemen...

Reyiiiin的深夜一点半 122

【LeetCode】15. 3Sum(Python)

Problem Algorithmic thinking 讨论解决方案 https://discuss.leetcode.com/topic/75883/python-solution-with-detailed-explanation 3Sum https://leetcode.com/problems/3sum/ 基于排序的算法 a + b = -c。3SUM减少到2SUM问题。 处理...

E.W的博客 1469

LeetCode 15 3Sum 解题思路和python代码

检查左指针指向的数(-1)是否与下一个数(0)相等,如果相等,就要跳过重复的左指针元素;同样道理,检查右指针指向的数(2)是否与前一个数(1)相等,如果相等,就跳过重复的右指针元素。左指针从 i+1 开始,右指针从数组末尾开始,逐步向中间收缩。,将它作为第一个数,然后使用双指针方法在 i 之后的数组部分寻找另外两个数,使它们的和等于0。和还是小于0,说明左指针太小,向右移动左指针。和还是小于0,说明左指针太小,向右移动左指针。和小于0,说明左指针太小,向右移动左指针。左指针大于右指针,遍历结束。

weixin_57266891的博客 1322
上一篇: leetcode_437. Path Sum III-二叉树
下一篇: leetcode_454. 4Sum II-4个数的和
李家少年
博客等级 码龄14年 20粉丝 202原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值