博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【刷算法】LeetCode- 两数之和
阅读量:6979 次
发布时间:2019-06-27

本文共 686 字,大约阅读时间需要 2 分钟。

题目描述

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

示例:

给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]复制代码

分析

第一感觉是和我之前做过的题类似,就想先排序然后左右指针来夹逼,后面一想,排序之后数组下标就乱了,所以这个方法不行

考虑到可以使用一个map,存储的键值对为:target-val:index,也就是对于数组中的每一个数字,存下它和target的差距以及它的下标。

/** * @param {number[]} nums * @param {number} target * @return {number[]} */var twoSum = function(nums, target) {  if(nums === null || nums.length < 2)    return [];  var map = {};  for(var i = 0;i < nums.length;i++) {    map[target-nums[i]] = i;  }    for(var i = 0;i < nums.length;i++) {    var cur = nums[i];    if(map[cur] && map[cur] !== i)      return [i, map[cur]];  }    return [];};复制代码

转载地址:http://mojpl.baihongyu.com/

你可能感兴趣的文章
日本外务省新设网络安全保障政策室
查看>>
美“智能城市挑战赛”决赛名单公布:7座城市入围
查看>>
企业全光网将成运营商部署千兆接入的商业驱动力
查看>>
sql 2000 分页存储过程
查看>>
2030年实现全球10TW的光伏目标 太阳能电池需要哪些突破?
查看>>
2017年物联网五大趋势
查看>>
卡巴斯基:智能汽车应用程序存在安全风险
查看>>
由一个营业厅投诉引发的思考
查看>>
智能家居火热但仍存缺陷,傻瓜式操作或成未来方向
查看>>
Win10 S是Windows RT第二?微软:差别很大
查看>>
流量劫持已成行业毒瘤,不正当竞争当严惩
查看>>
《IPv6精髓(第2版)》——第1章 为何使用IPv61.1 IPv6历史
查看>>
Whonix 8 发布,匿名通用操作系统
查看>>
《驯狮记——Mac OS X 10.8 Mountain Lion使用手册》——2.2 窗口
查看>>
《虚拟化安全解决方案》一导读
查看>>
WPS Office for Linux 项目中止 计划开源 Linux 代码
查看>>
《调色师手册:电影和视频调色专业技法(第2版)》——监视器校准
查看>>
法国政府理事会推荐 ODF 拒绝 OOXML
查看>>
乌云曝 Discuz!持久性漏洞,官方已确认
查看>>
打错一个字母瘫痪半个互联网!亚马逊 S3 宕机事件缘由
查看>>