尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

LeetCode Hot 100(哈希篇)

LeetCode Hot 100(哈希篇)
📅 发布时间:2026/7/6 15:39:47

1. 两数之和

很多涉及两个变量的题目,都可以枚举其中一个变量,把它当成常量看待,从而转换成一个变量的问题。代码实现时,通常来说枚举右,维护左是更加好写的

时间复杂度:O ( n ) O(n)O(n)

空间复杂度:O ( n ) O(n)O(n)

Java 代码:

classSolution{publicint[]twoSum(int[]nums,inttarget){Map<Integer,Integer>cnt=newHashMap<>();for(inti=0;i<nums.length;i++){if(cnt.containsKey(target-nums[i])){returnnewint[]{cnt.get(target-nums[i]),i};}cnt.put(nums[i],i);}returnnewint[]{-1,-1};}}

Python 代码:

classSolution:deftwoSum(self,nums:List[int],target:int)->List[int]:dic={}foriinrange(0,len(nums)):x=target-nums[i]ifxindic:return[i,dic[x]]dic[nums[i]]=ireturn[-1,-1]

49. 字母异位词分组

如果两个字符串是字母异位词,那经过排序之后,两个字符串是一样的。把经排序后的字符串作为哈希表的 key,这个可以映射到这个 key 的就是同一组的。

时间复杂度:O ( n m l o g m ) O(nmlogm)O(nmlogm)

空间复杂度:O ( n ) O(n)O(n)

Java 代码:

classSolution{publicList<List<String>>groupAnagrams(String[]strs){Map<String,List<String>>cnt=newHashMap<>();for(Stringstr:strs){char[]charStr=str.toCharArray();Arrays.sort(charStr);StringsortStr=newString(charStr);if(cnt.containsKey(sortStr)){cnt.get(sortStr).add(str);}else{cnt.put(sortStr,newArrayList<>(Arrays.asList(str)));}}List<List<String>>ans=newArrayList<>();for(Stringkey:cnt.keySet()){ans.add(cnt.get(key));}returnans;}}

Python 代码:

classSolution:defgroupAnagrams(self,strs:List[str])->List[List[str]]:dic={}forsinstrs:sortedStr="".join(sorted(s))ifsortedStrindic:dic[sortedStr].append(s)else:dic[sortedStr]=[s]ans=[]forkindic.keys():ans.append(dic[k])returnans

128. 最长连续序列

对于数组中的每一个序列都从该序列的最开始记录长度。利用哈希表,首先将数组中的元素全部存储到哈希表中,对于数组中的一个数 x 如果哈希表中记录有 x-1,则说明 x 不是一个连续序列的开始,直接跳过,直到找到一个序列的首位,开始递增的查询连续序列是否存在,查询结束时也就知道了以 x 开始的最长连续序列的长度,最后再记录 x 已经被记录过最长连续序列,避免重复计算。

时间复杂度:O ( n ) O(n)O(n)

空间复杂度:O ( n ) O(n)O(n)

Java代码:

classSolution{publicintlongestConsecutive(int[]nums){Set<Integer>set=newHashSet<>();for(intnum:nums){set.add(num);}intans=0;for(inti=0;i<nums.length;i++){if(set.contains(nums[i]-1)){continue;}inttmp=nums[i];while(set.contains(tmp)){set.remove(tmp);tmp++;}ans=Math.max(ans,tmp-nums[i]);}returnans;}}

Python 代码:

classSolution:deflongestConsecutive(self,nums:List[int])->int:s=set(nums)ans=0forxins:if(x-1)ins:continuet=xwhiletins:t+=1ans=max(ans,t-x)returnans

相关新闻

  • 5个秘诀高效使用开源音频编辑器:Audacity实用操作指南
  • Apollo Save Tool:PS4游戏存档管理的本地化技术解决方案
  • 从FNN到LSTM:4类神经网络结构演进与10个关键设计思想解析

最新新闻

  • Amulet地图编辑器:打破Minecraft版本壁垒的终极创作工具
  • 终极Windows系统优化工具:三分钟让老旧电脑焕然一新
  • 5个理由告诉你为什么WebStudio是开源网站建设的最佳选择
  • Go代码混淆实战指南:garble深度解析与高级配置策略
  • Mix 2.0响应式设计:跨平台自适应样式的最佳实践指南
  • 3个关键步骤:如何为你的Jupyter项目构建高效协作环境

日新闻

  • AI智能体安全防护框架AgentGuard:从原理到实战部署指南
  • KMX63与PIC18F26K40硬件组合及低功耗设计实践
  • 基于YOLO13改进的门体检测模型:C3k2模块与PoolingFormer技术解析

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号