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

本文共 678 字,大约阅读时间需要 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://yygum.baihongyu.com/

你可能感兴趣的文章
Java 连接数据库
查看>>
部分 TCP 参数简介
查看>>
[转]java annotation 手册
查看>>
不安装oracle客户端也可以使用pl/sql developer
查看>>
4、在Shell程序中的使用变量
查看>>
AndroidのListView之滑动列表项(点击事件和滑动事件共存)
查看>>
pygtk手记(1)
查看>>
YOUYOU深入学习Ganglia之三(gmetad的软件架构)
查看>>
poj1483 It's not a Bug, It's a Feature!
查看>>
ESET Smart Security 6 – 免费60天(SG)
查看>>
Coursera Machine Leaning 课程总结
查看>>
js 控制div 显示隐藏的问题
查看>>
execute、executeQuery和executeUpdate之间的区别
查看>>
类继承已经过时了
查看>>
Objective-C在windows开发环境的搭建
查看>>
用正则表达式提取字符串中的字符(包含数字)
查看>>
Ubuntu 12.04 LTS(64 bit) + RTL8188CU无线网卡驱动
查看>>
Asp.net MVC中提交集合对象,实现Model绑定
查看>>
谁说码农不懂浪漫?(js写的'老婆生日快乐'特效)
查看>>
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(16)-权限管理系统-漂亮的验证码...
查看>>