用时:5508 ms
消耗:15.1 MB
解法二:建立哈希表
注意到方法一的时间复杂度较高的原因是寻找 target - x 的时间复杂度过高。因此,我们需要一种更优秀的方法,能够快速寻找数组中是否存在目标元素。如果存在,我们需要找出它的索引。
这样我们创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
建立哈希表
hashtable = dict()
循环遍历列表中的元素
for i, j in enumerate(nums):
如果 target - j 在哈希表中,则返回当前位置和哈希表中的位置
if (r := target - j) in hashtable:
return i, hashtable[r]
若不存在,则将当前数和位置储存到哈希表中
else:
hashtable[j] = i
用时:28 ms
消耗:15.7 MB
感谢阅读!
分享刷题的第一天!
原创不易,点个赞支持一下作者吧!
本文收录于专栏 Python 刷题笔记。
关注作者,互助交流,学习更多 Python 知识!
https://blog.csdn.net/weixin_48448842
推荐阅读
- 学不好 Python?那是因为你没有一本好的教程!程序员必备网站,速拿走!
- Python 爬取奥运奖牌榜 - 中国原来这么厉害!
- Python 爬虫实战 | 爬取天气预报
- 学习笔记 | Python 位运算图解 &、|、^、~、<<、>>
- 再不会 Python 自动化,你就落伍了!xlrd、xlwt、xlutils 操作表格详解
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)
系化!**
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)