128. 最长连续序列

https://leetcode-cn.com/problems/longest-consecutive-sequence/
给定一个未排序的整数数组,找出最长连续序列的长度。
要求算法的时间复杂度为 O(n)。

  1. 用哈希表存储每个端点值对应连续区间的长度
  2. 若数已在哈希表中:跳过不做处理
  3. 若是新数加入:
    取出其左右相邻数已有的连续区间长度
    计算当前数的区间长度
    根据当前区间长度更新最大长度的值
    更新区间两端点的长度值
class Solution {
public:
    int longestConsecutive(vector<int>& nums) {
        unordered_map<int,int> ma;
        int ans=0;
        for(int i=0;i<nums.size();i++){
            int t=nums[i];
            if(!ma[t]){
                int l=ma[t-1],r=ma[t+1];
                ma[t]=ma[t+r]=ma[t-l]=l+r+1;
                ans=max(ans,ma[t]);
            }
        }       
        return ans;
    }
};
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。 示例: 代码
    vbuer阅读 3,395评论 0 0
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 11,437评论 0 13
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 18,235评论 2 36
  • 这周末有NDCC会议在东南大学举办,互联网相关的大会,恰好又在南京,张老师让我们都去听听,长长见识。 课题组一起出...
    且以沧海寄余生阅读 2,361评论 0 0
  • 这些天,成都天天在下雨!今天坐在窗边,一边继续缝制给儿子去澳洲游学家庭的亚麻杯垫,一边听着雨,偶尔望望窗外淅淅沥沥...
    欣然705阅读 1,477评论 0 0

友情链接更多精彩内容