两数之和


解法一

使用两层循环暴力解
var twoSum = function(nums, target) {
  for (let i = 0; i < nums.length; i++) {
    let dif = target - nums[i]
    for (let j = 1; j < nums.length; i++) {
      if (dif == nums[j]) {
        return [i,j]
      }
    }
  }
};

解法二

每遍历一个元素,就计算出target与数组元素的差值dif,如果temp[dif]存在,则返回。否则就将原数组的键值对调,存入temp中。

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

posted @ 2020-01-06 14:41  恒若  阅读(145)  评论(0)    收藏  举报