原题目链接如下:
1. 两数之和https://leetcode.cn/problems/two-sum/
这里使用字典解法最为快速简单,但需要注意一个细节:即字典冲撞问题,当遇到相同的key值时,value值以最后的更新为准。
举例说明如下:
使用dict强制将元组转化为dict,如果碰到key重复问题:
如果元组转为dict后key重复,则后面的key-value会覆盖前面的key-value(简单地说,python3.6后字典变为【有序】,value以最后出现的元素为准)。
换到这道题目上,使用哈希表求解:
【基本思路】使用另一个字典储存target-num和其索引,加快检索匹配。
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
a=defaultdict()
for i,num in enumerate(nums):#枚举
if target-num in a:
return [a[target-num],i]
a[num]=i#如果互补元素不存在表中,那么就加入
关于hash冲突的解释:
感谢参考:
(146条消息) Python dict强制转化元组(key重复问题)_JingjingyiyiGuo的博客-CSDN博客_python字典重复key (146条消息) Python字典出现重复的键,以最后出现的值为准_Channing Lewis的博客-CSDN博客_python字典重复的键



