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/

相关推荐
Forever Nore2 小时前
学完C语言力扣第一题做不来正常吗
数据结构·算法
hansang_IR3 小时前
【题解】LC:倍增 / 区间并查集(Range Parallel Unionfind)
c++·算法·并查集
Tisfy4 小时前
LeetCode 3731.找出缺失的元素:哈希 / 排序
算法·leetcode·哈希算法·排序·哈希表
lucas_AI4 小时前
Q-CueGraph:你的多模态大模型会 zoom,但真的知道该看哪儿吗?
人工智能·算法
kaixin_啊啊5 小时前
test_机器学习算法学习
学习·算法·机器学习
liulilittle5 小时前
MOE路由:路由(logits: top-k/8)
c++·人工智能·算法·机器学习·llm
旖旎夜光5 小时前
LeetCode 11:盛最多水的容器(双指针问题) —— 题解
数据结构·c++·算法·leetcode·双指针
一只齐刘海的猫5 小时前
【Leetcode】乘积最大子数组
算法·leetcode·职场和发展
余生皆假期-6 小时前
傅里叶变换和拉普拉斯变换
人工智能·算法·机器学习