Two sum
# https://leetcode-cn.com/problems/two-sum/
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
# eg
# nums = [2,7,11,15], target = 9
# 2 -> [7,11,15]
# 7 -> [11,15]
# ...
## sol1:
# for i, n in enumerate(nums):
# for j, m in enumerate(nums):
# if j > i:
# if n + m == target:
# return [i, j]
# return [-1, -1]
## sol2:
needed = {}
for i, n in enumerate(nums):
if n in needed:
return [needed[n], i]
reminder = target - n
needed[reminder] = i
return [-1, -1]
## demo
# i: 1
# n: 7
# needed: {7: 0}
# reminder: 7