Leetcode Hot 1001 分钟
两数之和
LeetCode 经典题「两数之和」的两种解法:暴力双循环与哈希表优化。

题目

解法
解法一 暴力双循环
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == target:
return [i, j]解法二 哈希表
数组的值作为字典的key,数组的下标作为字典的value,在循环时,边循环边查找,同时保持维护
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
dic = {}
for i in range(len(nums)):
# 先检查需要的数在dic中吗
if target - nums[i] in dic:
return [dic[target - nums[i]], i]
dic[nums[i]] = i
return []