[力扣 Hot100]Day3 最长连续序列

题目描述

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

请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

出处

思路

此题可用带排序的哈希表,先构建哈希表,然后遍历哈希表,维护一个工作数和一个最长记录(初始值均为1),若相邻两个哈希表项的key相差1,则工作数++,否则视情况更新最长记录并把工作数归1。
value不起作用,题目无需考虑存在多个相同key的问题。

代码

class Solution {
   
public:
    map<int, int> hash;
    int longestConsecutive(vector<int>& nums) {
   
        if(nums.empty())
            return 0;
        for(auto i : nums){
   
            hash[i] = i;
        }
        int max=1,tmp=1;
        auto pre=hash.begin();
        auto it=++hash.begin();
        while(it!=hash.end()){
   
            if(it->first==pre->first+1) {
   //若连续
                tmp++;
                if (tmp > max)
                    max = tmp;
            }
            else
                tmp=1;
            pre++;
            it++;
        }
        return max;
    }
};

相关推荐

  1. [ Hot100]Day3 连续序列

    2024-01-12 13:42:04       39 阅读
  2. 1003.连续序列

    2024-01-12 13:42:04       44 阅读
  3. 题库第3题:连续序列

    2024-01-12 13:42:04       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-12 13:42:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-12 13:42:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-12 13:42:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-12 13:42:04       20 阅读

热门阅读

  1. 移动安全-certutil

    2024-01-12 13:42:04       34 阅读
  2. K8S---kubectl top

    2024-01-12 13:42:04       36 阅读
  3. 第28关 k8s监控实战之Prometheus(七)

    2024-01-12 13:42:04       37 阅读
  4. 【数据库】

    2024-01-12 13:42:04       34 阅读
  5. 蓝桥杯——飞机降落

    2024-01-12 13:42:04       37 阅读
  6. vue 可写的computed

    2024-01-12 13:42:04       36 阅读