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

LeetCode 热题 100——3.字母异位词分组

LeetCode 热题 100——3.字母异位词分组
📅 发布时间:2026/6/29 19:01:59

🧑‍💻博主名称:鱼子星_
✅数据结构专栏:【数据结构】
✅算法竞赛专栏:【算法竞赛】
✅C++系列专栏:【C++从零开始系列】


128. 最长连续序列

【128. 最长连续序列】

题目描述

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

请你设计并实现时间复杂度为 O(n) 的算法解决此问题。


样例

示例 1:

输入:nums = [100,4,200,1,3,2]

输出:4

解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。

示例 2:

输入:nums = [0,3,7,2,5,8,4,6,0,1]

输出:9

示例 3:

输入:nums = [1,0,1,2]

输出:3


解题思路

💡解法一:排序去重

将数组排好序后使用unique函数去重,这样就可以保证升序的元素一直是相邻的,然后直接遍历数组,同时维护最长的连续即可

🗋 代码

classSolution{public:intlongestConsecutive(vector<int>&nums){if(nums.size()==0)return0;//排序+去重sort(nums.begin(),nums.end());intcnt=unique(nums.begin(),nums.end())-nums.begin();//统计最大长度intret=0;intt=0;for(inti=0;i<cnt-1;i++){if(nums[i]==nums[i+1]-1){t++;}else{ret=max(ret,t+1);t=0;}}ret=max(ret,t+1);returnret;}};

提交结果

💡解法二:哈希表

先将数组所有的元素放入自动去重的哈希表中,之后开始遍历原数组。遍历到i时刻就判断hash[nums[i] - 1]是否大于0,如果不是大于0,就代表当前元素是某个上升序列的开头。从这个元素的数值开始,不断往后判断hash[nums[i] + 1 * x]是否大于0,当遇到0时代表序列结束,更新最终结果即可。而如果hash[nums[i] - 1]等于0,就直接跳过即可。

LeetCode官方代码

classSolution{public:intlongestConsecutive(vector<int>&nums){unordered_set<int>num_set;for(constint&num:nums){num_set.insert(num);}intlongestStreak=0;for(constint&num:num_set){if(!num_set.count(num-1)){intcurrentNum=num;intcurrentStreak=1;while(num_set.count(currentNum+1)){currentNum+=1;currentStreak+=1;}longestStreak=max(longestStreak,currentStreak);}}returnlongestStreak;}};

提交结果

相关新闻

  • 西安人脸识别门禁:适合老旧小区改造的需求分析与选择
  • Defender Control完整指南:如何在Windows 10/11中永久禁用Windows Defender
  • Netcatty 开源跨平台 SSH 运维客户端完整技术实操指南

最新新闻

  • ncmdump终极指南:一键解锁网易云音乐NCM加密格式,重获音乐自由
  • 2026年番禺成人如何选择优质口才培训机构
  • 告别命令行:用MongoDB Compass图形化工具轻松玩转数据增删改查与迁移
  • 微服务架构下的HTTP请求头“大小写”丢失排查之旅
  • 开放集成体系:即时通讯成为效率引擎
  • 如何快速掌握时间序列预测:iTransformer终极解决方案指南

日新闻

  • ENVI5.3.1实战:基于Landsat 8影像的区域无缝镶嵌与精准裁剪
  • 3步完成HS2-HF Patch安装:新手快速打造完美HoneySelect2体验
  • 微信好友检测终极指南:3分钟发现谁已悄悄删除你

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

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

服务项目

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

快速链接

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

联系方式

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

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