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两数之和的主要内容,如果未能解决你的问题,请参考以下文章

leetcode_01两数之和

01-两数之和

LeetCode刷题167-简单-两数之和

LeetCode刷题167-简单-两数之和

Leecode01. 两数之和——Leecode大厂热题100道系列

Leecode01. 两数之和——Leecode大厂热题100道系列