LeetCode-第1题-两数之和

var twoSum = function(nums, target) {
  let a = nums.length;
  while(a > 1) {
    let last = nums.pop();  //pop出最后一个元素并将返回值赋值给last
    if (nums.indexOf(target - last) > -1) { //indexOf方法的返回值不为-1的话就说明找到了该元素
      return [nums.indexOf(target - last), nums.length] //返回一个数组[差值的下标,【数组长度】]
                                                        //ps:因为【数组长度】在循环前正好被-1,所以刚好就是当前减数的下标
    }
    a--;
  }
};

作者:recuerdos-de-la-alhambra
链接:https://leetcode-cn.com/problems/two-sum/solution/liang-shu-zhi-he-by-recuerdos-de-la-alhambra/
来源:力扣(LeetCode)

这是别人的答案,我只加了注释以表示对它的理解,第一次接触LeetCode,实在太美妙了。这里面的大神的解题思路各种精巧,仰慕!

加油??


哦忘了发题目:

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

例如:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum


相关推荐