LeetCode怎么实现两数之和
发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,这篇文章给大家分享的是有关LeetCode怎么实现两数之和的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1题目描述给定一个整数数组 nums 和一个目标值 target,在
千家信息网最后更新 2024年11月18日LeetCode怎么实现两数之和
思路一 : 遍历匹配
这篇文章给大家分享的是有关LeetCode怎么实现两数之和的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
1
题目描述
给定一个整数数组 nums 和一个目标值 target,在该数组中找出和为目标值的那两个整数的数组下标。如nums = [2, 7, 11, 15], target = 9时,返回[0,1](因为2+7=9)。
2
解题
通过两层for循环对所有可能逐一进行验证,找到正确结果。此方法python程序在LeetCode中显示时间超出限制,不推荐。
思路二:哈希表
通过一层for循环结合enumerate()找到每个数字值与位置的关系,存储在哈希表中。因为要找两数之和,所以每次循环时,首先判断target-item是否在已经建立的哈希表中,如果在则返回两个值的位置,如果不在把本次得到的值与位置关系新添在哈希表中。
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: h_map = {} # 或 h_map = dict() for i,item in enumerate(nums): if target-item in h_map : # 或 if h_map.get(target-item) is not None: , # 但速度略慢一些 return [h_map[target-item],i] h_map[item]=i
需要注意的是,类似nums=[2,2],target=4的输入,生成哈希表时第二个2的位置会覆盖第一个2的位置,导致无法得到[0,1]的结果,因此要在循环最后将本次的值与位置关系加入哈希表中,而不是在两层for后首先将对应关系加入哈希表。并且本方法,判断target-item是否在列表中时,是在item之前的值中查找符合条件的值,而不是针对列表中全部元素进行判断,使得效率进一步提升(不用担心这样会错过正确答案,因为当两个元素都循环到时,结果依旧可以识别出来)。
感谢各位的阅读!关于"LeetCode怎么实现两数之和"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
哈希
位置
循环
之和
两个
数组
结果
元素
内容
思路
整数
是在
更多
目标
目标值
篇文章
不错
实用
下标
不用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
库存软件连接数据库失败
服务器管理员权限命令
贵阳最专业的软件开发公司
什么是全服服务器
数据库底层是什么
数据库学生选课系统逻辑设计
网络安全应该写些什么
工商银行服务器调用失败
发展网络安全技术的意义
腾讯轻量服务器备案
获取当前时间存到数据库
警校网络安全与执法是法学专业吗
广州乐开软件开发有限公司老板
rtx数据库修改
装修公司数据库管理
数据库pl是什么意思
南岸区工商软件开发服务常见问题
乡镇网络安全保障工作
方舟服务器怎么换电脑
我的世界梦香宝可梦服务器
网络安全三大协议是什么
通达信软件数据库文件
黄浦区市场软件开发制造价格
互图数据库
广州中威网络技术有限公司
小学网络安全教育专题讲座稿
web用户查询的数据库
点我网络技术怎么样
软件开发环境与编程语言
思源计算机网络技术