LeetCode 两数之和 + 三数之和

两数之和 简单题

思路:一个Map,key是数值,value是该数值对应的下标,遍历的时候判断一下当前数组下标对应的值在map里有没有可组合成target的(具体体现为在map里找target-nums【i】),如果有,直接返回,没有的话就加进去,继续找。

需要掌握的方法:map的get和containsKey

cl
ass Solution {public int[] twoSum(int[] nums, int target) {Map<Integer,Integer> m = new HashMap<>();m.put(nums[0],0);for(int i = 1;i<nums.length;++i){if(m.containsKey(target - nums[i])){return new int[]{m.get(target-nums[i]),i};}else{m.put(nums[i],i);}}return new int[0];}
}

三数之和 双指针 中等题

思路:严格上来说算三个指针,一个i是维护当前遍历到的数字下标,之后的l和r指针是从i所处位置开始,在i + 1 到len - 1这个区间中寻找nums[i]的相反数。

class Solution {// -4 -1 -1 0 1 2 // public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> res = new ArrayList<>();Arrays.sort(nums);int len = nums.length;if(len < 2){return res;}for(int i = 0;i < len;++i){int l = i + 1;int r = len - 1;if( i != 0 && nums[i] == nums[i-1]){//与前一个数重复需要调过,不然会出现重复的三元组continue;}while(l < r){if(nums[i] + nums[l] + nums[r] == 0){if(l > i + 1 && nums[l] == nums[l-1] ){//这里也是同理l ++ ;continue;}List<Integer> tmp = new ArrayList<>();tmp.add(nums[i]);tmp.add(nums[l]);tmp.add(nums[r]);l++;r--;//左右指针都要变,因为l变大的话,还希望结果有可能为0,r必须变小(意味着nums[r]变小)res.add(tmp);}else if(nums[i] + nums[l] + nums[r] < 0){//nums[l] 太小了,把它变大一点l ++;}   else{r --;}}}return res;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA使用阿里通义灵码插件

在这个AI火热的时代&#xff0c;纯手工写代码已经有点out了&#xff0c;使用AI插件可以帮我们快速写代码&#xff0c;起码能省去写那些简单、重复性的代码&#xff0c;大大提高编码效率&#xff0c;在这里我推荐使用阿里的通义灵码 注册安装 安装注册好后&#xff0c;打开我们…

深入探索Spark MLlib:大数据时代的机器学习利器

随着大数据技术的迅猛发展,机器学习在各行各业的应用日益广泛。Apache Spark作为大数据处理的利器,其内置的机器学习库MLlib(Machine Learning Library)提供了一套高效、易用的工具,用于处理和分析海量数据。本文将深入探讨Spark MLlib,介绍其核心功能和应用场景,并通过…

【流媒体】音频相关概念详解

文章目录 一、前言二、概述三、音频相关概念1、采样率&#xff08;Sampling rate&#xff09;2、位深度&#xff08;Bit depth&#xff09;3、比特率&#xff08;Bit rate&#xff09;4、声道&#xff08;Audio channel&#xff09;5、音频帧6、音频编码7、音频解码 一、前言 …

【vuejs】$nextTick的原理分析和使用场景

1. $nextTick 概述 Vue.js 框架中的 $nextTick 是一个非常重要的 API&#xff0c;它允许开发者延迟回调函数的执行直到下次 DOM 更新循环之后。这意味着&#xff0c;当开发者在 Vue 组件中更改了数据&#xff0c;并且想要在 DOM 更新完成后执行某些操作时&#xff0c;可以使用…

总结开发过程遇到问题有哪些渠道可以寻找解决方案

罗列一下 百度、ChatGPT/讯飞星火等AI、Stack Overflow、github isssue 平时开发过程遇到问题的主要解决方式都是百度或者询问ChatGPT&#xff0c;当然在java中这两个方式也能解决百分之80的问题&#xff0c;毕竟java的社区圈够热闹。 如何优雅地使用 Stack Overflow 一、学…

搭建自己的DNS服务器

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

腺苷调节合成高密度脂蛋白用于三阴性乳腺癌的化学免疫治疗

引用信息 文 章&#xff1a;Adenosine-modulating synthetic high-density lipoprotein for chemoimmunotherapy of triple-negative breast cancer 期 刊&#xff1a;Journal of Controlled Release&#xff08;影响因子&#xff1a;10.8&#xff09; 发表时间&am…

深入探索:十种流行的深度神经网络及其运作原理

算法 深入探索&#xff1a;十种流行的深度神经网络及其运作原理一、卷积神经网络&#xff08;CNN&#xff09;基本原理工作方式 二、循环神经网络&#xff08;RNN&#xff09;基本原理工作方式 三、长短期记忆网络&#xff08;LSTM&#xff09;基本原理工作方式 四、门控循环单…

jupyter notebook默认工作目录修改

jupyter notebook默认工作目录修改 1、问题2、如何修改jupyter notebook默认工作目录 1、问题 anaconda安装好之后&#xff0c;我们启动jupyter notebook会发现其默认工作目录是在C盘&#xff0c;将工作目录放在C盘会让C盘很快被撑爆&#xff0c;我们应该将jupyter notebook默…

进阶篇01——存储引擎

MySQL体系结构 存储引擎 引擎有多种类型&#xff0c;MySQL支持多种存储引擎&#xff0c;默认的存储引擎为innodb。不同的存储引擎有不同的特点&#xff0c;适用不同的场景。 innodb存储引擎 简介 innodb的逻辑存储结构 MYISAM存储引擎 memory存储引擎 三种引擎特点对比&…

2024华为数通HCIP-datacom最新题库(变题更新③)

请注意&#xff0c;华为HCIP-Datacom考试831已变题 请注意&#xff0c;华为HCIP-Datacom考试831已变题 请注意&#xff0c;华为HCIP-Datacom考试831已变题 近期打算考HCIP的朋友注意了&#xff0c;如果你准备去考试&#xff0c;还是用的之前的题库&#xff0c;切记暂缓。 1、…

融合创新:Web3如何重新定义网络生态

随着区块链技术的不断发展和Web3时代的到来&#xff0c;我们正在见证着互联网生态的巨大变革。Web3将传统的互联网架构转变为去中心化、开放、透明的新网络生态&#xff0c;为创新和合作提供了全新的可能性。本文将深入探讨Web3如何重新定义网络生态&#xff0c;探索融合创新的…

Flutter中防抖动和节流策略

什么是防抖和节流&#xff1f; 函数节流&#xff08;throttle&#xff09;与 函数防抖&#xff08;debounce&#xff09;都是为了限制函数的执行频次&#xff0c;以优化函数触发频率过高导致的响应速度跟不上触发频率&#xff0c;出现延迟&#xff0c;假死或卡顿的现象 是应对频…

WeTrade亮相Traders Fair展会菲律宾站

2024年5月25日&#xff0c;菲律宾交易博览会在马尼拉的Edsa香格里拉酒店圆满落幕。 WeTrade作为本次交易博览会的重要战略合作伙伴、参展商和赞助商&#xff0c;吸引了全球各界人士的广泛关注。 现场&#xff0c;我们的菲律宾团队与客户进行了亲密的面对面交流&#xff0c;并…

优思学院|精益生产学习过程中如何提高自己的能力水平?

精益生产是一项实践多过理论的课题。 优思学院认为实践并不限于实际的工作&#xff0c;日常的思考同样重要&#xff0c;例如我们会要求学员在学习时不断思考各种事物&#xff0c;不限于自己的企业。例如当你去到一家餐厅&#xff0c;你能夠观察到什么浪费&#xff1f;你可否把…

Docker pull镜像一直在Waiting无法下载,根本解决方法

1、现象描述&#xff1a; docker pull 拉去镜像一直在等待&#xff0c;无法下载&#xff0c;最后失败如下&#xff1a; [rootlocalhost docker]# docker pull zookeeper Using default tag: latest latest: Pulling from library/zookeeper 2ec76a50fe7c: Retrying in 1 seco…

特征交叉系列:DCN-Mix 混合低秩交叉网络理论和实践

DCN-Mix和DCN-V2的关系 DCN-Mix(a mixture of low-rank DCN)是基于DCN-V2的改进版&#xff0c;它提出使用矩阵分解来降低DCN-V2的时间空间复杂度&#xff0c;又引入多次矩阵分解来达到类似混合专家网络MOE的效果从而提升交叉层的表征能力&#xff0c;若读者对DCN-V2不甚了解可…

linux shell脚本启动springboot服务

1.脚本代码 xx.sh&#xff0c;自己随意命名 #!/bin/bash# 设置变量 JAR_NAME"xssq-1.0.0.jar" JAR_PATH"./$JAR_NAME" PID0#检查程序是否在运行 is_exist(){PIDps -ef|grep $JAR_NAME|grep -v grep|awk {print $2} #如果不存在返回1&#xff0c;存在返回0…

评价GPT-4的方案

评价GPT-4的方案 引言: 随着人工智能技术的不断发展,自然语言处理领域取得了显著的突破。其中,GPT-4作为最新的大型语言模型之一,备受关注。本方案旨在对GPT-4进行全面评价,包括其技术特点、性能表现、应用场景以及潜在的影响等方面。 一、技术特点 1. 模型规模和参数数…

微信小程序使用自定义tabbar被组件遮挡调试层级没有用

在我自定义使用tabbar的时候&#xff0c;发现使用vant weapp环形进度条的时候把tabbar给遮挡了&#xff0c;查看了文章说没什么好的解决办法&#xff0c;但是也有&#xff0c;链接在此 我是直接修改的自定义组件的标签view标签和image标签都使用cover- image和cover-view代替就…