Leetcode(top100)最长连续序列

题目:

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

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

题解:

首先将所有元素存储在一个哈希表中,想象这些数字排好序放在数组上,然后每次从一段的头部进入,记录这一段的长度,在每一次进去算得的长度中取最大值。

判断头部:查找不到当前元素x的前一个(x-1)。

进入后不断向后移动:不断查找当前元素加一。

将数组放入哈希表中时间复杂度是O(n),判断每一个数是否是起点时间复杂度是O(n),哈希表的查找时间总的时间复杂度是O(n)的,总的加起来时间复杂度为O(n);

int search(vector<int>& nums, int target) {
        int l=0,r=nums.size()-1,mid;
        while(l<=r){
            mid=(l+r)>>1;
            if(nums[mid]==target){
                return mid;
            }else if(nums[mid]>target)r=mid-1;
            else l=mid+1;
        }
        return -1;
    }

相关推荐

  1. Leetcode(top100连续序列

    2024-06-15 10:32:01       35 阅读
  2. 【力扣100】 3.连续序列

    2024-06-15 10:32:01       69 阅读
  3. [力扣 Hot100]Day3 连续序列

    2024-06-15 10:32:01       57 阅读
  4. LeetCode-热题100:128.连续序列

    2024-06-15 10:32:01       40 阅读
  5. leetcode热题100.连续序列

    2024-06-15 10:32:01       41 阅读
  6. 128. 连续序列

    2024-06-15 10:32:01       56 阅读
  7. 3.连续序列

    2024-06-15 10:32:01       33 阅读
  8. 【LeetCode】连续序列

    2024-06-15 10:32:01       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-15 10:32:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-15 10:32:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-15 10:32:01       82 阅读
  4. Python语言-面向对象

    2024-06-15 10:32:01       91 阅读

热门阅读

  1. 微服务与分布式面试题

    2024-06-15 10:32:01       32 阅读
  2. B树与B+树与Mysql innodb的B+树和其相关索引

    2024-06-15 10:32:01       24 阅读
  3. 【AI开发】LangGraph基础

    2024-06-15 10:32:01       35 阅读
  4. mmyolo尝试

    2024-06-15 10:32:01       25 阅读
  5. linux shell实现端口查询

    2024-06-15 10:32:01       22 阅读
  6. std::vector的emplace_back 与 push_back 比较

    2024-06-15 10:32:01       42 阅读
  7. 数据结构 ->反转链表

    2024-06-15 10:32:01       33 阅读
  8. 程序员该有怎么样的职业素养

    2024-06-15 10:32:01       30 阅读
  9. 高等数学与初等数学的分水岭是什么?

    2024-06-15 10:32:01       25 阅读
  10. EventBus之Reactor实战

    2024-06-15 10:32:01       22 阅读