思路1

题目要求 O(n) 复杂度。

这是一个很有意思的算法,可以手动模拟一下

  • 用哈希表存储每个端点值对应连续区间的长度

  • 若数已在哈希表中:跳过不做处理

  • 若是新数加入:

    • 取出其左右相邻数已有的连续区间长度 left 和 right

    • 计算当前数的区间长度为:cur_length = left + right + 1

    • 根据 cur_length 更新最大长度 max_length 的值

    • 更新区间两端点的长度值

Last updated