1、两数之和![在这里插入图片描述](https://img-blog.csdnimg.cn/8cc5801a5113411ebe5011625519e6b0.png)
解法一:
- 思路 :首先我们要知道target是两数相加,所以我们在知道其中一个值的时候,用target减掉已知数值,即可得到目标值,只需要遍历数组,把每次遍历的数值与当前数值之前的数值相加,判断是否等于目标值target
- 代码
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
numbers = len(nums)
j = -1
for i in range(numbers):
nums1 = nums[:i]
if (target - nums[i]) in nums1:
j = nums1.index(target-nums[i])
break
if j >= 0:
return [j, i]
解法二:
- 思路
使用哈希求解,通过字典来模拟哈希查询过程,相比较方法一,省去了查找目标值索引的步骤 - 代码
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
map1 = {}
for index, key in enumerate(nums):
if map1.get(target - key) is not None:
return [map1.get(target - key), index]
map1[key] = index