首页 > 其他分享 >三数之和_15

三数之和_15

时间:2022-08-16 12:33:24浏览次数:72  
标签:right 15 nums 三数 while && res left

三数之和

给你一个包含 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]
输出:[]

提示:

  • 0 <= nums.length <= 3000
  • -105 <= nums[i] <= 105

题解:

使用双指针实现两数之和,第一个数遍历

class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
        List<List<Integer>> res = new ArrayList<>();
        int len = nums.length, left, right;
        if (nums == null || len < 3) return res;
        Arrays.sort(nums);


        for (int i = 0; i <= len - 3; i++) {
            if (i > 0 && nums[i] == nums[i - 1]) continue;
            left = i + 1; right = len - 1;
            while (left < right) {
                while (left < right && nums[left] + nums[right] + nums[i] > 0) {
                    right--;
                }
                while (left < right && nums[left] + nums[right] + nums[i] < 0) {
                    left++;
                }
                if (left < right && nums[left] + nums[right] + nums[i] == 0){
                    res.add(Arrays.asList(nums[i], nums[left], nums[right]));
                    left++; right--;
                    while (left < right && nums[left] == nums[left - 1]) {
                        left++;
                    }
                    while (left < right && nums[right] == nums[right + 1]) {
                        right--;
                    }
                }
            }
        }

        return res;
    }
}

标签:right,15,nums,三数,while,&&,res,left
From: https://www.cnblogs.com/greengages/p/16591151.html

相关文章

  • P5931 [清华集训2015]灯泡——三分法
    一道不错的题,只是重构数据后精度太奇怪了,必须打表才能过题目分析根据题意我们可以抽象出一个直角梯形,并设人到墙壁的距离为\(x\),设影子在墙上的高度为\(y\)如果没有在......
  • 2022-08-15 第六小组 高佳誉 学习笔记
    Mysql数据库数据库数据库【按照数据结构来组织、存储和管理数据的仓库】。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据对于公司......
  • CVE-2015-1635-HTTP.SYS远程执行代码漏洞(ms15-034)
    CVE-2015-1635-HTTP.SYS远程执行代码漏洞(ms15-034)一、今日目标:复现一个代号为MS15-034的漏洞。二、漏洞描述:在2015年4月安全补丁日,微软发布的众多安全更新中,修复了HTTP......
  • 20220815
    现在的你,是十年前你的决定,十年后的你,是现在你的决定。种一棵树,最好是十年前,其次是现在。想要改变,从此刻开始,一切还不晚。星光不问赶路人,时光不负有心人,愿十年后的今天不为......
  • 2022-08-15 第三组 陈迪 学习笔记
    Myspl数据库:数据库:数据库【按照数据结构来组织、存储和管理数据的仓库】。是一个长期储存在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据对于......
  • 815笔记(offset,client,scroll)
    元素偏移量offsetoffset就是偏移量,使用offset的相关属性可以动态地得到该元素的位置(即偏移),大小等offset系列属性element.offsetTop返回元素相对带有定位父元素上方的......
  • 2022-08-15 第十小组 石晓荟
    MySQL数据库:按照数据结构来组织,存储和管理数据的仓库,是一个长期存储在计算机体内的,有组织可供共享的,统一管理大量数据的集合MySql数据库MySql是一个关系型数据库,是一......
  • 【2022.8.15】MySQL数据库(2)
    今日内容概要字符编码与配置文件数据库存储引擎创建表的完整语法MySQL字段类型MySQL字段约束今日内容详细字符编码与配置文件如何查看数据库基本信息(用户......
  • 2022-08-15 第八组 卢睿 学习心得
    目录Mysql数据库数据库Mysql基本操作表SQL语言SQL分类DCL(数据库控制语言)创建用户给用户授权撤销授权查看权限删除用户DDL(数据定义语言)创建表数据类型整型浮点型字符串类型......
  • 2022-08-15 第五组 赖哲栋 学习笔记
    Mysql数据库数据库【暗战数据结构来组织、存储和管理数据的仓库】。是一个长期存储在计算机内的,有组织的、可共享的、统一管理的大量数据的集合程序员的工作就是对数据......