1. 题目
2. 题解
利用目标值和遍历值作差,采用hash字典,记录之前访问过的值,观察差值和记录值是否一致
- 因为是从左往右遍历,所以在dict里的值对应的index一定比当前index小,所以不需要判断;
- 别忘了下标从1开始.
3. 核心代码
def test(arr, t):
result = {}
for ind, val in enumerate(arr, 1):
diff = t - val
if diff in result:
return [result[diff], ind]
result[val] = ind
if __name__ == '__main__':
nums = [3, 2, 4, 2, 4]
target = 6
print(test(nums, target))