two-sum

Posted zhangjiabing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了two-sum相关的知识,希望对你有一定的参考价值。

  可能进不了大厂,但是还是要努力。

  目前刷题主要是解决题目,关于复杂度的考量,emmm,下次一定。先做最简单的。。。。

题目描述

给出一个整数数组,请在数组中找出两个加起来等于目标值的数,
你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足 index1 小于index2.。注意:下标是从1开始的
假设给出的数组中只存在唯一解
例如:

给出的数组为 {2, 7, 11, 15},目标值为9
输出 ndex1=1, index2=2

输入:
[3,2,4],6
输出:

[2,3]

方法一:暴力破解,两次循环查询

function twoSum( numbers , target ) {
// write code here
for (var i = 0; i < numbers.length; i++) {
for (var j = i + 1; j < numbers.length; j++) {
if (numbers[i] + numbers[j] === target) {
return console.log([i+1, j+1]);
}
}
}
}
module.exports = {
twoSum:twoSum
};

方法二:哈希表查询

function twoSum( numbers , target ) {
// write code here
var hash={};
var len =numbers.length;
for(var i=0; i<len; i++){
hash[numbers[i]] = i;
var x = target - numbers[i];
if( x == hash[numbers[i]] ){
return console.log( [i,i+1]);
 
}
}
}

 

以上是关于two-sum的主要内容,如果未能解决你的问题,请参考以下文章

leetcode笔记--1 two-sum

two-sum

[Lintcode two-sum]两数之和(python,双指针)

JavaScript的two-sum问题解法

Two Sum

[LintCode/LeetCode]——两数和三数和四数和