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

LeetCode LCR 119.最长连续序列

LCR 119.最长连续序列

题面:

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

示例:
input nums = [100,4,200,1,3,2]
output 4

解析:

  • 这道题目简单的思路就是,对nums中的数字进行排序,设本次遍历到的数字为num,判断num + 1是否是下一个不等于num的数字。
  • 优化:
    • 针对于下一个出现的数字而言,num/num + 1/others,我们可以通过降重操作来保证下一个为num + 1/others,我们一般常用的实现就是set,而set的底层就是哈希表,相对于HashMap而言,HashSet仅对键进行操作。于是乎,我们可以通过哈希表查询来完成num + 1是否存在来推进最长连续序列,这样就省去了排序所带来的时间消耗。
    • 注意:若num - 1在当前set中,意味着最长连续序列,一定不是从num向后推进的。即若[num, y]满足连续序列的要求,[num - 1, y]一定也是满足要求的,故可以不判断。
  • \[nlog(n)\rightarrow n \]

复杂度

时间复杂度

\[O(n) \]

空间复杂度

\[O(n) \]

Code

// C++
class Solution {
public:int longestConsecutive(vector<int>& nums) {unordered_set<int> s;for (auto num : nums){s.insert(num);}int ans = 0;for (int x : s){if (s.count(x - 1)){continue;}int y = x + 1;while (s.count(y)) {y++;}ans = max(ans, y - x);}return ans;}
};
# Python
class Solution:def longestConsecutive(self, nums: List[int]) -> int:ans = 0temp = set()for num in nums:temp.add(num)for x in temp:if x - 1 in temp:continuey = x + 1while y in temp:y += 1ans = max(ans, y - x)return ans
// Rust
use std::collections::HashSet;
use std::cmp;impl Solution {pub fn longest_consecutive(nums: Vec<i32>) -> i32 {let mut temp = HashSet::new();for num in nums.iter() {temp.insert(num);}let mut ans = 0;for x in temp.iter() {if temp.contains(&(**x - 1)) {continue;}let mut y = **x + 1;while temp.contains(&y) {y += 1;}ans = cmp::max(ans, y - **x);}return ans;}
}
http://www.rkmt.cn/news/97308.html

相关文章:

  • 2025年评价高的水果网珍珠棉发泡机/板材珍珠棉发泡机实力厂家TOP推荐榜 - 品牌宣传支持者
  • 2025年靠谱的缓冲小角度铰链/二段力小角度铰链热门厂家推荐榜单 - 行业平台推荐
  • 2025年比较好的特种纸印刷最新TOP品牌厂家排行 - 行业平台推荐
  • 2025年知名的激光驱鸟器/超声波驱鸟器厂家最新实力排行 - 品牌宣传支持者
  • 分布式数据库高可用架构设计与动态一致性优化实践经验分享 - 指南
  • 2025年知名的IXPE泡棉用户口碑最好的厂家榜 - 行业平台推荐
  • 终极3行代码搞定智能搜索:WPF UI让你的输入效率翻倍提升
  • 如何在3大主流系统快速部署kkFileView:跨平台文档预览终极指南
  • “质子交换膜燃料电池(PEMFC)Simulink模型:仿真内容与参考公式、使用说明”
  • Asio异步编程(进阶):构建高性能网络应用的核心指南
  • WAN2.2-14B-Rapid-AllInOne终极指南:AI视频创作的完整解析
  • Dolphin Mistral 24B Venice Edition:隐私AI的终极指南与完整解决方案
  • ASP.NET Core Blazor进阶1:高级组件开发
  • 2025年知名的45#钢材TOP品牌厂家排行榜 - 行业平台推荐
  • 2025年知名的锌钢楼梯栏杆/高强度锌钢楼梯栏杆高评价厂家推荐榜 - 品牌宣传支持者
  • 2025年靠谱的RJ45插座连接器/单灯RJ45插座厂家最新权威实力榜 - 品牌宣传支持者
  • 250MB实现千亿级能力:腾讯混元0.5B重构边缘AI范式
  • HarmonyOS4G模组调用方法及核心代码
  • 终极指南:用Charticulator轻松构建个性化数据图表
  • Apache Airflow数据管道自动化管理:从零基础到高效运维实战指南
  • 2025年靠谱的阻尼铰链优质厂家推荐榜单 - 行业平台推荐
  • 27、高级Perl编程:正则表达式与函数库深度解析
  • Nacos 2.4.2命名空间管理异常终极解决方案
  • 2025年比较好的包装PE袋/自封袋PE袋TOP品牌厂家排行榜 - 行业平台推荐
  • Apple Color Emoji 在 Linux 系统中的终极配置指南
  • 如何用Nunchaku量化模型让普通显卡也能跑顶尖AI绘图
  • 基于vue的线上商城购物系统_q90ol4sn_springboot php python nodejs
  • Qwen3-VL-235B-Instruct技术揭秘:多模态智能的三大核心突破
  • CentOS-Stream-10 系统安装之SELINUX关闭
  • Next.js缓存优化实战:从根源解决构建不一致的5步诊断法