两数之和

71 阅读1分钟

1. 题目

image.png

image.png

2. 题解

利用目标值和遍历值作差,采用hash字典,记录之前访问过的值,观察差值和记录值是否一致

  1. 因为是从左往右遍历,所以在dict里的值对应的index一定比当前index小,所以不需要判断;
  2. 别忘了下标从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))