题解 | #两数之和#
两数之和
http://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f
梦开始的地方
class Solution:
def twoSum(self , numbers: List[int], target: int) -> List[int]:
# write code here
value2index = {} # 保存见过的数值和index
for i,num in enumerate(numbers):
if (target-num) in value2index:
return [value2index[target-num]+1, i+1]
value2index[num] = i
非常简单地保存下前面见过的数字和index,只要后面找到能配对的就结束了。
值得注意的有两个点:
- 因为是从左往右遍历,所以在dict里的值对应的index一定比当前index小,所以不需要判断;
- 别忘了下标+1.