Longest Consecutive Sequence

原创 2015年07月08日 15:02:46

描述
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.

给一个未排序的整型数组,找到最长连续的序列。
例如给 [100, 4, 200, 1, 3, 2],最长连续序列是.1.2.3.4返回长度时4
时间复杂度必须是O(n)

分析:时间复杂度有限制,不能用普通的排序算法。
用unordered_map进行存储

class Solution {
public:
    int longestConsecutive(vector<int>& nums) {
         unordered_map<int,bool> used;
        for(auto i :nums)
         used[i]=false;
         int longest=0;

         for(auto i:nums)
         {
              int length=1;
         if(used[i]==true)
         continue;
         used[i]=true;
         //在map中找比i大1的连续数,如果没有就返回尾后迭代器,有的
         //话,继续找。
         for(int j=i+1;used.find(j)!=used.end();j++)
        {
         used[j]=true;
         ++length;
         }
         for(int j=i-1;used.find(j)!=used.end();j--)
        {
         used[j]=true;
         ++length;
         }
        longest=max(length,longest);




         }
        return longest;
    }
};

注意是在map容器里进行查找,
长度是循环每个元素时定义的。

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

LeetCode题解整理版(一)

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

Prime Gap(素数表+二分)

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

在无序序列中找出最长的连续序列 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
  • 499

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

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

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

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

最长公共子序列(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
  • 602

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

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

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
  • 6354

动态规划之最长递增子序列(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
  • 929
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Longest Consecutive Sequence
举报原因:
原因补充:

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