skip to content
Liu Yang's Blog

Leetcode#001-HOT-两数之和

/ 1 min read

Table of Contents

读题

给出一个target和nums,nums中数字不重复,要求给出两个值的索引,其两数之和为target。

思路

a+b=targeta+b=target, 用一个hash表的k存储targetbtarget-b, v为索引, 再判断a在不在hash表中, 若在则返回.

如果提前做键值反转(之前的键相当于idx), 判断的时候需要确保aatargetbtarget-b具有不同下标

但是一次遍历就够了, 不需要提前反转.

实现

class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
d = {}
for k, v in enumerate(nums):
if target - v in d: return [k,d[target-v]]
else: d[v] = k