2 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.
Example:
nums = [2, 7, 11, 15] target = 9
returns
[0, 1]
because nums[0] + nums[1] = 2 + 7 = 9.
UPDATE (2016/2/13): The return format had been changed to zero-based indices. Please read the above updated description carefully.
def twoSum(nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
memo = {}
for i in range(len(nums)):
compliment = memo.get(nums[i])
if compliment != None:
return [compliment, i]
memo[target-nums[i]] = i// @flow
const twoSum = (nums: ?number[], target: number) => {
var memo: {
[compliment: number]: number
} = {}
if (nums == null) return null;
for (var i = 0; i < nums.length; i++) {
if (memo[nums[i]] != null) {
return [memo[nums[i]], i]
}
memo[target - nums[i]] = i
}
}Last updated