首页 > 编程语言 >letcode算法--10.三数之和

letcode算法--10.三数之和

时间:2022-09-04 22:45:34浏览次数:52  
标签:10 nums -- list int second threed letcode first

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请

你返回所有和为 0 且不重复的三元组。

注意:答案中不可以包含重复的三元组。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/3sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法一:

暴力解法,双指针+排序

class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
        Arrays.sort(nums);
        List<List<Integer>> ans = new ArrayList<List<Integer>>();
        for (int first = 0;first < nums.length; first++){
            if (first > 0 && nums[first] == nums[first - 1]){
                continue;
            }
            int target = - nums[first];
            int threed = nums.length-1;
            for (int second = first + 1;second < nums.length; second++){
                if (second > first + 1 && nums[second ] == nums[second - 1]){
                    continue;
                }
                while (second < threed && nums[second] + nums[threed] > target){
                    --threed;
                }
                if (second == threed)break;
                if (nums[second] + nums[threed] == target){
                    List<Integer> list = new ArrayList<>();
                    list.add(nums[first]);
                    list.add(nums[second]);
                    list.add(nums[threed]);
                    ans.add(list);
                }
            }

        }
        return ans;
    }
}

 

标签:10,nums,--,list,int,second,threed,letcode,first
From: https://www.cnblogs.com/xinger123/p/16656376.html

相关文章

  • MyBatis的注解实现复杂映射开发
    xml配置方式实现复杂映射回顾​实现复杂映射我们之前可以在映射文件中通过配置来实现,使用注解开发后,我们可以通过@Results注解,@Result注解,@One注解和@Many注解组......
  • C# 二十年语法变迁之 C# 8参考
    C#二十年语法变迁之C#8参考自从C#于2000年推出以来,该语言的规模已经大大增加,我不确定任何人是否有可能在任何时候都对每一种语言特性都有深入的了解。因此,我想写一......
  • 第一周学习笔记
    任务知识点归纳以及自己最有收获的内容(3分)问题与解决思路(2分)实践内容与截图,代码链接(3分)...(知识的结构化,知识的完整性等,提交markdown文档,使用openeuler系统等)(2分)知识......
  • nginx详情介绍
    Nginx的功能【重点记住】:1、高性能的HTTPServer,解决C10k的问题(PS:如果没有这么高的并发量都不会有运维这个行业)apache20020002、高性能的反向代理服务器(负载均衡......
  • 第二章 操作系统基本原理(操作系统知识)
    一:操作系统概述 二:进程管理       PV操作与信号量的处理相关,P表示通过的意思,V表示释放的意思。              三:......
  • How Amazon Route 53 routes traffic for your domain
    AfteryouconfigureAmazonRoute 53torouteyourinternettraffictoyourresources,suchaswebserversorAmazonS3buckets,here'swhathappensinjusta......
  • 学年(2022-2023-1) 学号(20221317)《计算机基础与程序设计》第1周学习总结
    作业信息班级:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业链接:https://www.cnblogs.com/zhanquanchen/p/16654783.html作业要求:快速浏览教材(https://www......
  • 20201322陈俊池 学习笔记1
    一、知识点归纳第一章:引言1.3本书目标(1)强化学生的编程背景知识(2)动态数据结构的作用(3)进程概念和进程管理(4)并发编程(5)定时器和定时功能(6)信号、信号处理和进程间通信(7......
  • java实现发送邮件功能
    java实现发送邮件功能 <!--发送邮件--><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId>......
  • Nacos - 将 Nacos 注册成 Windows 服务运行
    将Nacos注册成Windows服务运行众所周知,在Windows环境下想要启动nacos需要运行bin目录下的startup.cmd。这样的启动方式需要保证cmd窗口一直开着,只要把这个窗......