LeetCode 热题 100 JavaScript---1. 两数之和

news/2024/7/5 1:38:55
  1. 两数之和
    给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

示例 1:

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

输入:nums = [3,2,4], target = 6
输出:[1,2]
示例 3:

输入:nums = [3,3], target = 6
输出:[0,1]

1、暴力求解,双循环时间复杂度: O(n2), 空间复杂度: O(1)O(1)O(1)

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */

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

2、通过HashMap,在循环的时候进行查找我们将HashMap的Key定位nums[i],Value定义为i。 那么,每次循环到一个数的时候,我们就可以在HashMap中查找是否存在key === target - nums[i],如果存在则可以直接返回对应的两个下标,否则,将当前的值记入到HashMap中。 时间复杂度:O(n)空间复杂度:O(n)

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


http://lihuaxi.xjx100.cn/news/1401939.html

相关文章

Stephen Wolfram:机器学习与神经网络训练

Machine Learning, and the Training of Neural Nets 机器学习与神经网络训练 We’ve been talking so far about neural nets that “already know” how to do particular tasks. But what makes neural nets so useful (presumably also in brains) is that not only can t…

SD-WAN技术原理详解

什么是SD-WAN&#xff1f; SD-WAN是软件定义的广域网&#xff0c;其目的是帮助企业组建更为灵活和高效的网络框架。它与传统的广域网相比&#xff0c;具备更快的网络加速能力&#xff0c;更强的安全性和更便捷的使用方式。因此&#xff0c;随着企业在数字化转型的过程中&#…

代码随想录算法训练营第四十二天| 01背包问题 二维 一维 理论 416. 分割等和子集

代码随想录算法训练营第四十二天| 01背包问题 二维 一维 理论 416. 分割等和子集 一、力扣416. 分割等和子集 题目链接 思路&#xff1a;划分等和子集&#xff0c;先加和除以2&#xff0c;如果余数是1必不可能划分等和&#xff0c;余数为0&#xff0c;以半数和为背包容量套模…

Lombok,一个神奇的存在

1、概述 Lombok主要用于在编译POJO类源文件时通过注解的方式自动为该类生成构造方法、getter/setter、equals、hashcode、toString等方法&#xff0c;有效地简化了POJO类代码&#xff0c;提高了软件的开发速度。 2、安装 a、启动IntelliJ IDEA—>点击CtrlAltS快捷键&…

API接口给开发程序提供帮助,API接口应用价值

API可以用于开发使用相同数据的其他应用程序&#xff0c;比如公司&#xff0c;他们可以创建一个API &#xff0c;允许其他开发人员使用他们的数据并用其做其他事情&#xff0c;可以是 业务相关的 网站也可以是移动应用程序。 公司作为 信息的所有者&#xff0c; 便可以免费或收…

了解什么是PR

PR是Google排名算法的200多个因素之一&#xff0c;而且重要性已经下降很多。 当然&#xff0c;PR还是Google排名算法中的重要因素之一。除了直接影响排名&#xff0c;PR的重要性还体现以下几点。 &#xff08;1&#xff09;网站收录深度和总页面数。搜索引擎蜘蛛爬行时间及数…

华为交换机配置SSH远程登录

连接console线直接配置 1、在服务器端生成本地密钥对 <HUAWEI>system-view [HUAWEI] dsa local-key-pair create Info: The key name will be: HUAWEI_Host_DSA. Info: The key modulus can be any one of the following : 1024, 2048. Info: If the key modulus i…

【linux-网络】sslocal命令的安装使用

1.背景 需要ss转发&#xff0c;在linux中转发并登录。 2.操作流程&#xff1a; 1&#xff09;安装python 一般linux系统都自带python&#xff0c;2.7---如果要更高版本的自行安装 2&#xff09;使用pip安装ss pip install shadowsocks 3&#xff09;命令使用 sslocal -c …