Skip to content

``

plain
var twoSum = function (nums, target) {
    let datas = {};
    for (let i = 0; i < nums.length; i++) {
        for (let s = i + 1; s < nums.length; s++) {
            if (target==nums[i] + nums[s]) {
                return[i,s];
            }
        }
    }
};


var nums= [2,7,11,15];
var target = 9;
// twoSum([2,7,11,15],13); 
输出如下:
console.log(twoSum([2,7,11,15],13)); //2+11  [0,2]
console.log(twoSum([2,7,11,15],22)); //2+11  [1,3]
plain
简单粗暴,2遍for循环逐个遍历判断
 
  var twoSum = function (nums, target) { l
 
  et datas = {};
 
  for (let i = 0; i < nums.length; i++)
 
    { for (let s = i + 1; s < nums.length; s++) {
 
       if (target-nums[i] == nums[s])
 
    { return[i,s];
 
  } } } };

<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">isNaN(6) true</font>

plain
var twoSum = function(nums, target) {
  var keys = {};
 
   for(var i = 0;i < nums.length; i++) {
 
     var diff = target - nums[i];
 
      // 判断差值diff在键值对中是否存在 是则找到匹配数字 数组第二个数字为7,下标为1
 
     // keys[diff]=7,i=2 
 
          if(!isNaN(keys[diff])) {
 
              // 返回减去的数字下标和差值数字的下标
 
              return [keys[diff], i];
 
         }
 
         // 未出现匹配值 将数字存入键值对中以备后续判断
        // 当前数字假设为第三个 nums[i]=7,keys[7]=1  i就是判断数字的下标  建立key值 方便下次使用
 
         // 若是7的差值不存在,当前数字7的下标就是1,将1记录为7的下标
 
         keys[nums[i]] = i;
    }
  };

Released under the MIT License.