当前位置: 首页 > news >正文

算法面试——哈希表:两数之和、三数之和、最长连续序列

哈希表以 O(1) 的查找速度解决快速判断元素是否存在的问题。

一、两数之和

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

二、三数之和

publicList<List<Integer>>threeSum(int[]nums){Arrays.sort(nums);List<List<Integer>>result=newArrayList<>();for(inti=0;i<nums.length-2;i++){if(i>0&&nums[i]==nums[i-1])continue;intleft=i+1,right=nums.length-1;while(left<right){intsum=nums[i]+nums[left]+nums[right];if(sum==0){result.add(Arrays.asList(nums[i],nums[left],nums[right]));while(left<right&&nums[left]==nums[left+1])left++;while(left<right&&nums[right]==nums[right-1])right--;left++;right--;}elseif(sum<0)left++;elseright--;}}returnresult;}

三、最长连续序列

publicintlongestConsecutive(int[]nums){Set<Integer>set=newHashSet<>();for(intnum:nums)set.add(num);intmaxLen=0;for(intnum:set){// 只从连续序列的起点开始找if(!set.contains(num-1)){intcur=num,len=1;while(set.contains(cur+1)){cur++;len++;}maxLen=Math.max(maxLen,len);}}returnmaxLen;}

💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!

http://www.jsqmd.com/news/1337497/

相关文章:

  • 采购河北外墙钢板网厂家如何把控质量与交货周期 - 品牌优推
  • MATLAB偏微分方程求解进阶:从一维非线性到二维有限元实战
  • 终极指南:如何在ESP32上打造情感丰富的AI聊天机器人表情系统
  • 鸣潮工具箱WaveTools完整指南:三步解锁120帧画质优化终极方案
  • 基于8086微处理器的电子时钟系统设计与实现
  • 2026 年新消息:克孜勒苏柯尔克孜自治州专业的tpo防水卷材p型供应厂家推荐,贴在屋顶用十年不漏水的这玩意儿,居然不是靠沥青? - 企业推荐官【认证】
  • 2026随州活动拍摄公司优选榜** | 会议拍摄 | 活动跟拍 | 视频直播 | 照片直播 | 年会拍摄服务商评测对比 - 政企影像扫地僧
  • MySQL存储引擎与高可用架构实战解析
  • 系统卡顿排查指南:从死锁到线程池问题的实战诊断
  • Windows 11透明任务栏:原理、优化与高阶玩法全解析
  • JavaSE初学(2)
  • STM32 GPIO API深度解析:从标准库函数到高效配置与避坑指南
  • 单总线CPU硬布线控制器设计:现代时序与状态机实现详解
  • 5分钟快速上手:ReportGenerator代码覆盖率报告转换完整指南
  • Digital M7478-AA 单板计算机
  • 大模型推理能力提升实战:思维链与由少至多提示技术详解
  • 戴森球计划工厂蓝图库:3000+设计方案让星际建造更简单
  • Deno运行时:安全默认设置带来出色开发体验,多方式安装轻松上手!
  • 链式前向星:从邻接矩阵到高效存图,详解原理与C++/Python实现
  • Funplay Unity MCP execute_code:AI驱动Unity开发的代码沙盒与执行引擎
  • Mysql:主键
  • 成都管道疏通与漏水检测服务怎么选?专业机构横向参考指南 - 优质品牌商家
  • 构建高效Shiro密钥字典:从原理到实战的攻防利器
  • 基于开源LLM与自动化脚本构建个人AI助手:OpenClaw实战指南
  • C语言与C++在基础语法上的区别
  • 嵌入式以太网开发实战:从MII/RMII接口到STM32/GD32驱动调试
  • Java编码表深度解析:从原理到实战,彻底解决乱码问题
  • 单链表:找中间节点、找倒数第k节点、是否有环、逆序、排序(选择、冒泡、插入)
  • 企业网盘定制化开发技术选型:私有化部署、OpenAPI集成与AI能力对比分析
  • PyInstaller打包Python程序:从原理到实战的完整指南