【LeetCode】1. Two Sum 解題報告

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example: 
Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9, 
return [0, 1]. 
給定一個整數數組,返回兩個數字的索引,使它們相加到一個特定的目標。

您可以假設每個輸入都將具有一個解決方案,而您可能不會使用相同的元素兩次。

例: 
給定nums = [2,7,11,15],target = 9,

因爲nums [0] + nums [1] = 2 + 7 = 9, 
返回[0,1]。

主要的思路是用HashMap

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
public int[] twoSum(int[] nums, int target) {
     int[] result = new int[2];
     Map<Integer, Integer> map = new HashMap<Integer, Integer>(16);
     for (int i = 0; i < nums.length; i++) {
	  int key = target - nums[i];
	  if (map.containsKey(key)){
	      result[1] = i;
	      result[0] = map.get(key);
	      return result;
	  }
	  map.put(nums[i], i); 
     }
     return result;
}
点赞