LeetCode两数和-JavaScript多种解法

LeetCode两数和-JavaScript多种解法

题目地址

方法I:暴力解法

暴力解法是最容易想到的一种解法,由于题目中是寻找数组中两数之和等于目标值的数组下标,因此利用双层循环嵌套的方式来依次查找

var twoSum = function(nums, target) {
    if(!nums) return null;
    for(let i=0;i<nums.length-1;i++){
        for(let j=i+1;j<nums.length;j++){
            if(nums[i]+nums[j] === target) return [i,j]
        }
    }
};

方法II:哈希表

将数组中的值保存到hashTable中,一旦发现hashTable中存在能与当前数组值组成target的数则返回

var twoSum = function(nums, target) {
    let map = {};
    for(let i=0; i<nums.length; i++){
        let m = target - nums[i]
        if(m in map) return [i,map[m]]
        map[nums[i]] = nums[i]
    }
};

你可能感兴趣的:(leetcode,JavaScript,leetcode,javascript,算法)