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 + nums = 2 + 7 = 9, return [0, 1].

### Solution

 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 `````` ``````class Solution: def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ # Solution A: # for a in range(len(nums)): # for b in range(a+1, len(nums)): # if nums[a] + nums[b] == target: # return [a, b] # Solution B: # map = {} # for i in range(len(nums)): # map[nums[i]] = i # for i in range(len(nums)): # complement = target - nums[i] # if complement in map and map[complement] != i: # return [i, map[complement]] # Solution C: map = {} for i in range(len(nums)): complement = target - nums[i] if complement in map: return [i, map[complement]] map[nums[i]] = i ``````