01两数之和
Posted 小丞同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了01两数之和相关的知识,希望对你有一定的参考价值。
01两数之和
题目
代码
第一种
通过用indexOf
判断数组中是否含有目标值与当前值的差值,如果有就输出结果
var twoSum = function (nums, target) {
for (let i = 0; i < nums.length; i++) {
let test = nums.indexOf(target - nums[i]);
if (test != -1 && test != i) {
return [i, test];
}
}
}
console.log(twoSum([2, 7, 11, 15], 9)); //[0,1]
第二种
在leetcode题解中看到了哈希表,建一个容器map
,遍历数组,判断容器中是否有能使target - nums[i]
符合题意的值,如果有输出,没有就将原数组中的这个数加到哈希表中,后续继续判断.
var 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]
} else {
map.set(nums[i], i)
}
}
}
不管哪种解法,目的都是一样的,判断数组中是否含有目标值与当前值的差值,从而实现目的。
以上是关于01两数之和的主要内容,如果未能解决你的问题,请参考以下文章