美文网首页
LeetCode 第128题:最长连续序列

LeetCode 第128题:最长连续序列

作者: 放开那个BUG | 来源:发表于2022-04-02 11:13 被阅读0次

1、前言

题目描述

2、思路

使用最原始的排序思路,时间复杂度为 nlogn。因为题目不要求序列在数组中连续,所以极端情况下可以将整个数组作为一个整体,然后排序,针对相等的数跳过;针对两个数前后差值为1,则加1;否则 len 重置。

或者使用 hashmap。

3、代码

class Solution {
    public int longestConsecutive(int[] nums) {
        if(nums == null || nums.length == 0){
            return 0;
        }

        Arrays.sort(nums);
        int maxLength = 0, len = 1;
        for (int i = 1; i < nums.length; i++) {
            maxLength = Math.max(maxLength, len);

            if(nums[i] - nums[i - 1] == 1){
                len++;
            }else if(nums[i] - nums[i - 1] == 0){
                continue;
            }else {
                len = 1;
            }
        }

        return Math.max(maxLength, len);
    }
}
public int longestConsecutive(int[] nums) {
        if(nums == null || nums.length == 0){
            return 0;
        }
        Set<Integer> set = new HashSet<>();
        for (int num : nums) {
            set.add(num);
        }
        int max = 0;
        for (int num : nums) {
            // 如果有比自己小的,让小的先来,最终会找到每个阶段的小的
            if(set.contains(num - 1)){
                continue;
            }
            // 每个阶段的小的找到了,现在看能连续到多少
            int r = num;
            while (set.contains(r + 1)){
                r++;
            }
            max = Math.max(max, r - num + 1);
        }
        return max;
    }

相关文章

  • LeetCode-128-最长连续序列

    LeetCode-128-最长连续序列 128. 最长连续序列[https://leetcode-cn.com/p...

  • LeetCode 第128题:最长连续序列

    1、前言 2、思路 使用最原始的排序思路,时间复杂度为 nlogn。因为题目不要求序列在数组中连续,所以极端情况下...

  • Leetcode并查集

    128. 最长连续序列[https://leetcode-cn.com/problems/longest-cons...

  • python实现leetcode之128. 最长连续序列

    解题思路 去重排序然后检查连续整数检查完返回 128. 最长连续序列[https://leetcode-cn.co...

  • LeetCode128(最长连续序列)

    题目: 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为O(n)。 示例: 输入:[10...

  • LeetCode实战128 最长连续序列

    原题链接 题目描述 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为。 示例: 题目解析...

  • leetcode--128--最长连续序列

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

  • LeetCode-128-最长连续序列

    最长连续序列 题目描述:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续...

  • LeetCode 128. 最长连续序列

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

  • LeetCode 128. 最长连续序列 | Python

    128. 最长连续序列 题目 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)...

网友评论

      本文标题:LeetCode 第128题:最长连续序列

      本文链接:https://www.haomeiwen.com/subject/hypwjltx.html