算法_哈希表_两数之和
2021/11/16 9:09:40
本文主要是介绍算法_哈希表_两数之和,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 两数之和
- 1.解法
- 2.总结
- 算法
两数之和
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.总结
算法
-
数组和set做哈希表的局限性
数组的大小是受限制的,而且如果元素很少,而哈希值太大会造成内存空间的浪费。而且数组只能用于哈希值有范围的情况下。
set是一个集合,里面放的元素只能是一个key,而两数之和这道题目,不仅要判断y是否存在而且还要记录y的下表位置,因为要返回x 和 y的下表。所以set 也不能用。
这篇关于算法_哈希表_两数之和的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器
- 2024-11-26Java云原生资料:新手入门教程与实战指南
- 2024-11-26JAVA云原生资料入门教程
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程