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].
In [22]:
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
d = {} # keys are the diff and the value should be the last observed index
for i in range(len(nums)):
if target - nums[i] in d:
return sorted([i, d[target - nums[i]]])
else:
d[nums[i]] = i
mysol = Solution()
print ("solution", mysol.twoSum([2, 7, 11, 15], 26))
print ("solution", mysol.twoSum([3, 2, 4], 6))
In [ ]: