Longest Consecutive Sequence

原创 2016年08月31日 15:19:00

一、问题描述

Given an unsorted array of integers, find the length of the longest consecutive elements sequence.

For example,
Given [100, 4, 200, 1, 3, 2],
The longest consecutive elements sequence is [1, 2, 3, 4]. Return its length: 4.

Your algorithm should run in O(n) complexity.

二、思路

本题题意是求出最大的连续序列的长度。我们先对数组排序,然后遍历整个数组,遇到相同元素,跳过,遇到满足连续特性的数组,我们将临时变量加一,遇到不满足条件的元素,我们首先判断当前临时变量是否大于等于最大长度,如果满足,则更新max_len,同时不管是否满足条件都将临时变量置一,意味着重新开始。最后挑出循环后继续判断临时变量是否大于最大长度,如果大于,则需要更新最大长度。

三、代码

class Solution {
public:
    int longestConsecutive(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        int temp = 1, max_len = 1;
        for(int i = 1; i < nums.size(); ++i){
            if(nums[i] == nums[i - 1])
                continue;
            else if(nums[i - 1] + 1 == nums[i]){
                temp++;
            }else{
                if(temp >= max_len){
                    max_len = temp;
                }
                temp = 1;
            }
        }
         if(temp > max_len){
            max_len = temp;
        }
        return max_len;
    }
};


版权声明:本文为博主原创文章,未经博主允许不得转载。

LeetCode题解整理版(一)

Evaluate Reverse Polish Notation 逆波兰表达式求值,经典问题。 遇到数字入栈,遇到符号取栈顶的两个出来运算,再将结果入栈,最后栈里剩下的一个元素就是结果了。 ...
  • xualaleilei
  • xualaleilei
  • 2016年04月04日 17:30
  • 440

Prime Gap(素数表+二分)

Description The sequence of n − 1 consecutive composite numbers (positive integers that are not p...
  • xiaofang3a
  • xiaofang3a
  • 2014年09月15日 15:34
  • 443

在无序序列中找出最长的连续序列 Longest Consecutive Sequence

问题:Given an unsorted array of integers, find the length of the longest consecutive elements sequen...
  • luckyjoy521
  • luckyjoy521
  • 2014年03月03日 22:23
  • 1022

codeWars的一道题目而已

You are given an array strarr of strings and an integer k. Your task is to return the first longest ...
  • github_36837306
  • github_36837306
  • 2016年11月27日 18:39
  • 511

Longest Consecutive Sequence 从无序数组中找最长的连续数字 @LeetCode

又是一道Hashtable或者HashSet的空间换时间的题! package Level3; import java.util.HashSet; import java.util.Set; ...
  • hellobinfeng
  • hellobinfeng
  • 2013年11月10日 05:08
  • 11704

一个无序整数数组中找到最长连续序列(Longest Consecutive Sequence)和两个元素使得相差最小

无序数组中查找最长连续序列: 1、最笨的方法,首先将无序数组排序,然后依次遍历查找最长连续序列。时间复杂度为O(nlgn),空间复杂度为O(1)。2、首先将元素存入HashSet,然后逐个遍历原数组...
  • guoyuguang0
  • guoyuguang0
  • 2016年03月24日 11:04
  • 601

最长公共子序列(Longest Common Sequence)

问题的定义: 子序列 –X=(A, B, C, B, D, B) – Z=(B, C, D, B)是X的子序例 –W=(B, D, A)不是X的子序例 公共子序列 – Z是序列X与Y的公共子序...
  • u013068755
  • u013068755
  • 2017年04月22日 16:22
  • 605

最长递增和递减子序列详解(longest increasing subsequence)

对于动态规划问题,往往存在递推解决方法,这个问题也不例外。要求长度为i的序列的Ai{a1,a2,……,ai}最长递增子序列,需要先求出序列Ai-1{a1,a2,……,ai-1}中以各元素(a1,a2,...
  • seekcreation
  • seekcreation
  • 2014年10月09日 21:45
  • 671

Leetcode全数组问题

目录 1、编号2 Median of Two Sorted Arrays There are two sorted arrays A and B of size m and n respe...
  • wangxiaojun911
  • wangxiaojun911
  • 2014年02月06日 03:32
  • 6370

动态规划之最长递增子序列(Longest Increasing Subsequence)

原文地址:http://www.geeksforgeeks.org/dynamic-programming-set-3-longest-increasing-subsequence/ We have...
  • sinat_36246371
  • sinat_36246371
  • 2016年10月13日 12:12
  • 934
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Longest Consecutive Sequence
举报原因:
原因补充:

(最多只允许输入30个字)