【1】两数之和

题目描述

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

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

示例:

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

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

解答:
void main() {
  print(twoSum([2, 7, 11, 15], 9));
}

List twoSum(List nums, int target) {
  Map temp = new Map();
  if (nums == null || nums.length < 2) {
    return [];
  }
  for (int i = 0; i < nums.length; i++) {
    int other = target - nums[i];
    if (temp.containsKey(other)) {
      return [temp[other], i];
    }
    temp[nums[i]] = i;
  }
  return [];
}

你可能感兴趣的:(【1】两数之和)