美文网首页
005-在无序数组中查找最长的连续数字长度

005-在无序数组中查找最长的连续数字长度

作者: Woodlouse | 来源:发表于2020-05-10 20:48 被阅读0次

描述

现在有一个没有排序的数组,在这个数组中找到最长的连续数字。

例如:数组[100, 4, 200, 1, 3, 2, 5],最长的连续元素是[1, 2, 3, 4, 5],长度为5。

分析

数组是无序的,在无序数组里查找最长元素,可以借助哈希表,用一个哈希表记录每个元素是否被使用,对于没一个元素,以此元素为起点,分别向左,向右判断是否有此数字,直到不存在未知,记录下最长的长度。

int findTheLongestConsecutiveSequence(int A[], int n)
{
    std::unordered_map<int, bool> used;
    
    int longestLen = 0;
    
    for (int i=0; i<n; ++i) {
        used[A[i]] = false;
    }
    
    for(int i=0; i<n; i++) {
        if (used[A[i]]) {
            continue;
        }
        
        int len = 1;
        used[A[i]] = true;
        
        // 向右寻找数字
        for (int j=A[i]+1; used.find(j)!=used.end(); j++) {
            used[j] = true;
            ++len;
        }
        
        //向左寻找数组
        for(int j=A[i]-1; used.find(j)!=used.end(); j--) {
            used[j] = true;
            ++len;
        }
        
        longestLen = std::max(longestLen, len);
    }
    
    return longestLen;
}

代码在这儿

相关文章

  • 005-在无序数组中查找最长的连续数字长度

    描述 现在有一个没有排序的数组,在这个数组中找到最长的连续数字。 例如:数组[100, 4, 200, 1, 3,...

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

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

  • 128:最长连续序列

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

  • LeetCode 128. 最长连续序列

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

  • Day66 最长连续序列

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

  • 最长连续序列的长度

    一个无序正整数数组,求数组中最长连续序列的长度,时间复杂度越简单越好示例Input: [100, 4, 200, ...

  • 数组中的最长连续序列

    【题目】给定无序数组 arr, 返回其中最长的连续序列的长度. 【举例】arr=[100,4,200,1,3,2]...

  • 最长的连续元素序列的长度

    题目描述 给定一个无序的整数类型数组,求最长的连续元素序列的长度。例如:给出的数组为[100, 4, 200, 1...

  • 编程案例自我总结(一)

    此内容仅提供解题思路,应自行尝试撰写具体代码 1.数组中重复的数字查找:查找数组中重复的数字,数组长度为n,取值范...

  • dp经典问题

    1. 最长子序列问题 最长上升不连续子序列 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入:...

网友评论

      本文标题:005-在无序数组中查找最长的连续数字长度

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