LeetCode讲解篇之128. 最长连续序列

文章目录

题目描述

题解思路

首先我们可以将所有数字保存在集合中,然后 最长连续序列的开头数字 - 1 一定不存在于数组中,想到这一点,这题就迎刃而解了

我们只需要遍历集合

如果遍历到的当前数字 - 1存在于数组中就跳过这个数字的处理

如果遍历到的当前数字 - 1不存在于数组中,找寻以当前数字开头的最长连续序列,然后与结果取最长值

最终遍历结果,返回最长的连续序列长度即可

题解代码

go 复制代码
func longestConsecutive(nums []int) int {
    m := map[int]struct{}{}
    for i := 0; i < len(nums); i++ {
        m[nums[i]] = struct{}{}
    }
    ans := 0
    for num := range m {
        if _, ok := m[num - 1]; ok {
            continue
        }
        offset := 0
        for {
            offset++
            _, ok := m[num + offset]
            if !ok {
                break
            }
        }

        ans = max(ans, offset)
    }

    return ans
}

题解链接

https://leetcode.cn/problems/longest-consecutive-sequence/

相关推荐
芝士爱知识a13 小时前
AI 模拟面试怎么做:智蛙公考智能体多轮对话 + 实时追问的工程实现
面试·职场和发展
古城小栈13 小时前
为啥说:训练用BF16,推理用FP16
人工智能·算法·机器学习
KaMeidebaby13 小时前
卡梅德生物技术快报|蛋白 N 端测序在重组贻贝融合蛋白表征中的应用,解决原核表达序列偏移工艺难题
前端·人工智能·物联网·算法·百度
Turbo正则14 小时前
群论在AI中的应用概述
人工智能·算法·抽象代数
ysa05103014 小时前
【并查集】判环
c++·笔记·算法
Jerry14 小时前
KeetCode 44. 开发商购买土地
算法
Jerry15 小时前
KeetCode 58. 区间和
算法
Jerry16 小时前
LeetCode 209. 长度最小的子数组
算法
彦为君16 小时前
算法思维与经典智力题
java·前端·redis·算法
智能优化与强化学习16 小时前
Gym(Gymnasium)仿真环境详解(二):环境简介、入门算法、调参要点、核心挑战
算法·强化学习·gym·零基础入门·算法评估