ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

算法_哈希表_两数之和

2021-11-16 09:06:09  阅读:152  来源: 互联网

标签:target 数组 算法 num 哈希 两数 hashmap


文章目录

两数之和

leetcode链接

1.解法

遍历数组,每遍历到一个元素num就判断target-num是否在hashmap中出现过,如果出现过,则返回target-num的角标和当前元素num的角标。否则就把num存入hashmap中,接着往后遍历,直到数组结束。
在这里插入图片描述
代码如下:

def twoSum(nums,target):
    hashmap = {}
    for i,num in enumerate(nums):
        if target - num not in hashmap: # 先判断后存储
            hashmap[num] = i
        else:
            return [hashmap[target-num],i]

2.总结

算法

  1. 数组和set做哈希表的局限性

    数组的大小是受限制的,而且如果元素很少,而哈希值太大会造成内存空间的浪费。而且数组只能用于哈希值有范围的情况下。

    set是一个集合,里面放的元素只能是一个key,而两数之和这道题目,不仅要判断y是否存在而且还要记录y的下表位置,因为要返回x 和 y的下表。所以set 也不能用。

标签:target,数组,算法,num,哈希,两数,hashmap
来源: https://blog.csdn.net/Dajian1040556534/article/details/121348126

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有