暴力解法:
class Solution(object):
def twoSum(self, nums, target):
len=0
for i in nums:
len+=1
ind1=0
for i in nums:
res=target-i
ind2=0
while ind2<len:
if nums[ind2]==res and ind1!=ind2:
return ind1,ind2
ind2+=1
ind1+=1
题解:
暴力解法:
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 结构,key 存放元素,value 存放下标,故使用字典。
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
records = dict()
for index, value in enumerate(nums):
if target - value in records: # 遍历当前元素,并在map中寻找是否有匹配的key
return [records[target- value], index]
records[value] = index # 如果没找到匹配对,就把访问过的元素和下标加入到map中
return []
知识点
enumerate
函数:
使用 enumerate
函数遍历数组 nums
,可以得到每个元素的索引 index
和值 value
。