两数之和

news2024/10/5 15:27:29

在这里插入图片描述

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。

输入: nums = [2,7,11,15], target = 9
输出: [0,1]
解释: 因为 nums[0] + nums[1] == 9 ,返回 [0, 1]
输入: nums = [3,2,4], target = 6
输出: [1,2]
输入: nums = [3,3], target = 6
输出: [0,1]

题目给的测试用例里有以下限制:

2 <= nums.length <= 4。
2 <= nums[i] <= 11。
6 <= target <= 10。
只会存在一个有效答案。

思路一:
最简单的方式还是通过for循环实现

function twoSum(nums, target) {
  for(let i=0;i<nums.length;i++){
    for(let j=i+1;j<nums.length;j++){
        if(nums[i]+nums[j]==target){
              return [i,j]
        }
    }
  }
}

思路二:
1.循环遍历数组中的每个数字,用变量 i表示当前数字的索引。
2.对于每个数字,从当前索引之后的位置开始查找目标值与当前数字的差值是否存在于数组中。
3.使用indexOf()函数在数组中查找与目标值与当前数字的差值相等的数字,将结果保存在变量index中。
4.如果找到了与目标值相等的差值,即index不等于-1,则返回当前数字的索引和目标值的差值的索引,即[i, index]。
5.如果循环结束仍然没有找到符合条件的数字组合,则返回一个空数组或者一个指示未找到的标志。

function twoSum(nums, target) {
    for (let i = 0; i < nums.length; i++) {
        let index = nums.indexOf(target - nums[i], i + 1)
        if (index != -1) {
            return [i, index]
        }
    }
}

思路三:
1.创建一个空的Map对象,用变量名map表示。
2.循环遍历数组中的每个数字,用变量i表示当前数字的索引。
3.对于每个数字,首先通过map.has()方法检查是否存在与目标值与当前数字的差值相等的数字,如果存在,则直接返回两个数字的索引,即[map.get(target - nums[i]), i]。
4.如果不存在与目标值相等的差值,则将当前数字添加到map中,并将当前数字作为键存储在map中,索引值用变量名i表示。
5.如果循环结束仍然没有找到符合条件的数字组合,则返回一个空数组或者一个指示未找到的标志。

function twoSum(nums, target) {
    let map = new Map();
    for (let i = 0; i < nums.length; i++) {
        if (map.has(target - nums[i])) {
            return [map.get(target - nums[i]), i];
        }
        map.set(nums[i], i);
    }
    return [];
}

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

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

相关文章

arcgis实现影像监督分类

1、打开ArcMap,右击空白处打开影像分类工具栏&#xff0c;如下&#xff1a; 2、打开影像&#xff0c;如下&#xff1a; 打开的影像由于未经处理&#xff0c;颜色看起来很昏暗&#xff0c;这时候可以拉伸一下。具体操作&#xff0c;右击图层选择属性&#xff0c;如下&#xff1a…

python使用websockets进行数据传输

背景说明&#xff1a; 最近在研究一个智能监控系统&#xff0c;后台通过rtsp读取摄像头视频流&#xff0c;使用yolov算法进行目标检测&#xff0c;然后将检测的视频帧通过字符串的方式抛转到前台html页面显示&#xff0c;需要用到前后台数据交互技术&#xff0c;查询资料发现w…

ShareX设置快捷键、自定义保存路径、取消上传等设置

让ShareX变成顺手的形状 设置篇ShareX设置快捷键ShareX设置自定义保存路径ShareX取消自动上传和打开OCR 使用篇OCR 设置篇 ShareX设置快捷键 ShareX设置自定义保存路径 ShareX取消自动上传和打开OCR 为什么取消上传功能&#xff1a;因为不需要自动把本地截图自动上传到远程服务…

Vue3 使用存储库Pinia(getters)

一、store.js创建getters import { defineStore } from "pinia"; export const useStore defineStore(main, {state() { // state表示这个store里的状态&#xff0c;也就是存放数据的地方return {name: 张三,age:26 }},actions: { // 和vue中的methods一样updateA…

前端必会的三种DIV+CSS布局

要开发网页&#xff0c;必须要搞懂这三种divcss布局技术&#xff01;&#xff08;1&#xff09;左右两列布局&#xff1b;&#xff08;2&#xff09;1行3列&#xff1b;&#xff08;3&#xff09;1行多列或多行多列布局&#xff1b;只要你掌握了这三种布局方式&#xff0c;那搭…

2核4G服务器腾讯云或阿里云能安装几个网站?性能如何?

2核4G服务器能安装多少个网站&#xff1f;2核4g配置能承载多少个网站&#xff1f;一台2核4G服务器可以安装多少个网站&#xff1f;阿腾云2核4G5M带宽服务器目前安装了14个网站&#xff0c;从技术角度是没有限制的&#xff0c;只要云服务器性能够用&#xff0c;想安装几个网站就…

java之maven专题

1、idea配置maven https://blog.csdn.net/hanmingjun/article/details/129977880 2、阿里云补充缺少的jar包 到官方下载好jar包到这里上传 maven中配置跳过单元测试 https://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-tests.html

记录--再也不用手动改package.json的版本号

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 本文的起因是有在代码仓库发包后&#xff0c;同事问我“为什么package.json 里的版本还是原来的&#xff0c;有没有更新&#xff1f;”&#xff0c;这个时候我意识到&#xff0c;我们完全没有必要在每…

lwip-2.1.3自带的httpd网页服务器使用教程(二)使用SSI动态生成网页部分内容

上一篇&#xff1a;lwip-2.1.3自带的httpd网页服务器使用教程&#xff08;一&#xff09;从SD卡读取网页文件并显示 通过全局数组定义TAG标签列表 &#xff08;本节例程名称&#xff1a;ssi_test&#xff09; 电脑上用的Web服务器采用ASP、PHP或JSP动态网页技术后&#xff0c…

Verdi之状态机状态查询nState

目录 5. nState 5.1如何打开状态机视图 5.2 如何在状态机视图中添加状态转移条件 5.3 如何查看状态机个状态对应的相关代码 5.4 查看具体的状态机状态转移时间点 5.5 查找自定义状态 5.6 查找某个状态执行的次数 5. nState 5.1如何打开状态机视图 1. 将设计文件导入Ver…

人脸识别学习

1、人脸识别如何做到一次学习 &#xff08;1&#xff09;、数据收集&#xff1a;收集包含多个人脸图像的数据集&#xff0c;每个人脸图像都有对应的标签或身份信息。 &#xff08;2&#xff09;、图像预处理&#xff1a;对数据集中的每个人脸图像进行预处理&#xff0c;包括图…

pytorch的配置从此不在愁

anaconda配置 原视频的配置网站&#xff1a;Anaconda pytorch&#xff1a; 【从入门到进阶】PyTorch深度学习框架完结合集&#xff01;草履虫都能学会的计算机视觉实战&#xff08;PyTorch安装/深度学习实战/神经网络/人工智能&#xff09;_哔哩哔哩_bilibili 上面的视频 …

开放麒麟操作系统能打动嵌入式软件工程师吗?

国产操作系统大部分客户其实是toB的&#xff0c;内核以外的源码也是不开源的&#xff0c;比如麒麟系、统信UOS等&#xff0c;个人学习、小企业基本不会用。7月5日开放麒麟操作系统v1.0版正式发布&#xff0c;不同点是这个操作系统从内核到桌面系统源代码都是开源的&#xff0c;…

SpringCloud Alibaba——Nacos1.x配置中心长轮询机制

目录 一、Nacos1.x配置中心长轮询机制二、Nacos1.x配置中心长轮询机制流程图解 一、Nacos1.x配置中心长轮询机制 客户端会轮询向服务端发出一个长连接请求&#xff0c;这个长连接最多30s就会超时&#xff0c;服务端收到客户端的请求会先判断当前是否有配置更新&#xff0c;有则…

网络协议 — LLDP 数据链路发现协议

目录 文章目录 目录LLDPLLDPDUEthernet II LLDPDUSNAP LLDPDULLDPDU TLVs基本 TLV802.1 定义的 TLV802.3 定义的 TLV802.3 定义的 LLDP-MED TLV LLDP 消息流程LLDP 协议栈 LLDP LLDP&#xff08;Link Layer Discovery Protocol&#xff0c;链路层发现协议&#xff09;是定义在…

Windows环境下安装Nacos

文章目录 一、什么是Nacos1. 主要特点&#xff1a;1.1 服务发现和注册&#xff1a;1.2 配置管理&#xff1a;1.3 服务管理&#xff1a;1.4 多语言支持&#xff1a;1.5 高可用性和扩展性&#xff1a; 二、Windows下安装单机版Nacos1. 安装包下载&#xff1a;2. 目录文件说明&…

基于torchvision的CV迁移学习

前面我们用过了cifar10&#xff0c;这里因为我们模型的体量更大&#xff0c;他能够理解更加复杂的数据集&#xff0c;所以这里我们就使用更加复杂的数据集叫做cifar100&#xff0c;顾名思义就是它是一个100分类的图像数据集&#xff0c;分类数据更多&#xff0c;复杂度更多。 …

哈希表(hashtable)的数据插入、查找和遍历

文章目录 前言一、哈希二、哈希的具体实现2.1 准备工作2.2 插入数据2.3 输出哈希表2.4 在哈希表中寻找数据2.5 销毁哈希表 三、 哈希表的调用总结 前言 本期主要和大家介绍一下哈希算法&#xff0c;这里主要给出哈希算法的实现方法&#xff1b; 一、哈希 hash是一种算法: 哈希…

Linux进程理解【环境变量】

Linux进程理解【环境变量】 提到环境变量&#xff0c;大家可能有些陌生&#xff0c;如果编写过Java就知道&#xff0c;编写Java需要提前安装JDK&#xff0c;这个操作就是配置Java的编码环境&#xff0c;在Linux中当然也少不了环境变量&#xff0c;下面我们就一起来看看 文章目…

SpringBoot 统一功能的处理

SpringBoot 统一功能的处理 文章目录 SpringBoot 统一功能的处理1. 用户登录权限校验1.1 最初用户登录验证1.2 Spring AOP 统一用户登录验证的问题1.3 SpringAOP 拦截器1.3.1 实现自定义拦截器1.3.2 将自定义拦截器加入到系统配置 1.4 拦截器实现原理1.4.1 实现流程图1.4.2 实现…