首页 > 其他分享 >15. 三数之和 1

15. 三数之和 1

时间:2023-11-08 22:13:18浏览次数:30  
标签:15 nums 三数 add res now

2023-11-08

​​​​​​15. 三数之和 - 力扣(LeetCode)

此篇文章是刚开始做这道题时的错误想法,正确想法请看2,这是1.

思路:  

1 暴力法

2 利用哈希表将3层循环转为2层

上面的方法会有去重问题:

class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
        //三者都不相同,和为0
        //可以作为i》j》k   不影响的 
        //可能有多个
 
        //暴力法  3层循环,有点bt
        //借用哈希表,变为2层循环
 
 
        List<List<Integer>> res=new ArrayList<>();
        //暴力法的
        for(int i=0;i<nums.length;i++){
            for(int j=i+1;j<nums.length;j++){
                for(int k=j+1;k<nums.length;k++){
                    if(nums[i]+nums[j]+nums[k]==0){
                        ArrayList<Integer> now=new ArrayList<>();
                        now.add(nums[i]);
                        now.add(nums[j]);
                        now.add(nums[k]);
                        if(!res.contains(now)){
                              res.add(now);
                        }          
                    }
                }
            }
        }
 
        return res;
 
        //会有去重问题
        //可以进一步思考-》nums[i]<=nums[j]<=nums[k]
        //进一步思考-》可以先将数组就行排序
 
 
 
 
    }
}

 

标签:15,nums,三数,add,res,now
From: https://www.cnblogs.com/youye9527/p/17818455.html

相关文章

  • 软件测试|Chrome 115之后的版本,如何更新driver?
    问题描述前两天在运行一个web自动化测试脚本时,报了如下的错误,ThisversionofChromeDriveronlysupportsChromeversion113Currentbrowserversionis115.0.5790.110withbinary,如下图所示:该报错提示我,当前的driver只支持113版本的Chrome浏览器,但是我的Chrome已经自动......
  • P2146 [NOI2015] 软件包管理器 题解
    [NOI2015]软件包管理器题目背景Linux用户和OSX用户一定对软件包管理器不会陌生。通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软件包的安装所依赖的其它软件包),完成所有的配置。Debi......
  • SP15637 GNYR04H - Mr Youngs Picture Permutations(线性 dp)
    题目求方案数,考虑dp——状态设计和边界——题目告诉了一个很显然的性质:每一排从左至右保证高度单调递减每一列从后往前保证高度单调递减那么可以发现,对于每一行,每一列,一定是按高度顺序插入,并且是连续插入,因为如果不连续,就无法保证单调递减的性质同时,它给出了另一个性......
  • 简单高效!Navicat 15激活全流程在此!
    不说虚的,Navicat激活流程直接给!下载Navicat15安装包以及注册机提示:激活补丁的网盘链接关注我私信获取~Navicat15软件安装包;Navicat15注册机;Navicat12版本(如果15装不了,可安装里面的12版本,步骤都是一样的!)安装Navicat151、先双击navicat150_premium_cs_x64.exe安装包,开......
  • win10定时关机、定时休眠和定时睡眠的命令行【转载自https://blog.csdn.net/conanluff
    1、定时关机#注:/s关机,/t后面接时间,单位是秒shutdown/s/t3600 #一个小时后关机shutdown-a#取消定时关机注:"shutdown/h"是立即进入休眠的命令,但/h参数不能与/t连用,故不能用shutdown实现定时休眠的功能。/h可与/f连用,/f表示强制关闭正在运行的应用程序而不事先警告用户。......
  • vs2015编译glib2.5.0
    1、首先安装vs2015,以及下载一个glib2.50的源码包2、编译glib的问题①首先解决提示找不到libintl.h的问题需要编译安装libintl模块,可通过下载到glib仓库下载gettext-runtime-dev_0.18.1.1-1_win32包,里面提供了libintl.h和intl.lib②解决找不到pcre.h的问题到官网下载pcre安装......
  • NodeJS系列(15)- TypeScript (二) | 对象类型 (Object Types)
    在“NodeJS系列(14)-TypeScript(一)|安装TypeScript、常用类型”里,我们简单介绍了TypeScript的安装配置,讲解和演示了TypeScript常用类型。本文继续介绍TypeScript对象类型(ObjectTypes)。TypeScript:https://www.typescriptlang.org/(中文版:https://ts.nodejs.cn/)Micro......
  • 网工内推 | 售后工程师,IP认证优先,最高15薪,年底有分红
    01威发系统(中国)有限公司招聘岗位:售后工程师职责描述:1、负责各种规模的项目售后安装、调试和维护工作;2、解决工程和维护中的一般技术问题,支持、协助处理其他相关的技术问题;3、与客户建立和保持良好关系,及时提出解决问题的方法,并为客户提供培训和技术咨询;4、熟练、准确地了解公司产......
  • cf1582F2. Korney Korneevich and XOR (hard version)(暴力优化)
    cf1582F2对于每种数可以维护一个列表v[x],表示到当前位置,最后一个数小于等于x,能够取到的值,对于当前的数ai,我们可以用v[ai]中的值x与ai异或,来更新v[ai+1],v[ai+2]后面的值。然后就是有两个优化,每次我们更新完后,都对v[a[i]]清空,因为只有两个相同数之间的数才对后面可能有贡献,前面的......
  • Educational Codeforces Round 157 (Rated for Div. 2)
    A.TreasureChest题目大意:人在0处,宝藏在x,钥匙在y,人最多拿宝箱z秒,问你最快多久开宝箱?思路:如果说钥匙在宝箱的左边,那么人只需要往右走就是最佳答案,如果钥匙在宝箱的右边,那么人只需要拿的宝箱到最佳地点就行#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ intx,y......