算法题--两数之和

154 阅读1分钟

题目

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

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

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

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

Python解法

class Solution:
  def twoSum(nums, target):
    d = {}
    for i, num in enumerate(nums):
      temp = target - num
      for key, value in d.items():
        if value == temp:
          return [key, i]
      d[i] = num
    return None


js解法

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