两数之和
题目:
给一个数组array,一个目标值target
返回array中和为目标值的下标,
如果没有返回-1
思路:
用一个hashmap存储array中的数,以{num:index} 格式存储
遍历array, 如果target-array的值存在于hashmap中, 则返回当前的遍历的位置和hashmap的value。
def twosum(arr, target):
d = {}
for ind, num in enumerate(arr):
if (target-num) in d:
s = d.get(target-num)
return (s, ind)
else:
d[num]=ind
return -1
测试:
arr = [1, 3, 5, 8]
target=11
twosum(arr, target)
(1,3)