Two Sum 两数之和
题目描述
解法1、切片后查找
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in nums:
j = target - i
start_index = nums.index(i)
next_index = start_index + 1
temp_nums = nums[next_index:]
if j in temp_nums:
return [nums.index(i), next_index + temp_nums.index(j)]
注意返回值index的转换
解法2、hash字典
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
dict = {}
for i in range(len(nums)):
if target - nums[i] not in dict:
dict[nums[i]] = i
else:
return [dict[target-nums[i]], i]
解法3、同2
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
dict = {}
for i, num in enumerate(nums):
if target - num in dict:
return [dict[target-num], i]
dict[num] = i
借助枚举函数,方法同2
出处
1、2、https://www.bilibili.com/video/av45727557
文章已搬运至个人博客:https://night-zhang.github.io/