2021-09-27 今日算法

2021-09-27  本文已影响0人  走花鹿

1.两数之和

两数之和

解题

我首先想到的是暴力解法,就是对数组嵌套循环(时间复杂度是 O(n²)):


我首先想到的方法

肯定有更好的办法
看到评论区有人说用逆向解法,用target减去数组中的一个数,然后判断得到的结果是否在数组中

var twoSum = function(nums, target) {
    map = new Map()
    for(let i = 0; i < nums.length; i++) {
        x = target - nums[i]
        if(map.has(x)) {
            return [map.get(x),i]
        }
        map.set(nums[i],i)
    }
};
var twoSum = function (nums, target) {
  let hash = {};
  for (let i = 0; i < nums.length; i++) {
    if (hash[target - nums[i]] !== undefined) {
      return [i, hash[target - nums[i]]];
    }
    hash[nums[i]] = i;
  }
  return [];
};
上一篇 下一篇

猜你喜欢

热点阅读