标签:style blog io ar color os sp for on
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.
C++代码实现:
#include<iostream> #include<vector> #include<set> using namespace std; class Solution { public: int longestConsecutive(vector<int> &num) { if(num.empty()) return 0; set<int> st; int len=1; for(int i=0; i<(int)num.size(); i++) st.insert(num[i]); auto k=st.begin(); k++; int count=1; for(; k!=st.end(); k++) { auto tmp=k; tmp--; if(*tmp+1!=*k) { if(count>len) len=count; count=1; continue; } count++; } if(count>len) len=count; return len; } }; int main() { Solution s; vector<int> vec= {9,1,4,7,3,-1,0,5,8,-1,6}; cout<<s.longestConsecutive(vec)<<endl; }
标签:style blog io ar color os sp for on
原文地址:http://www.cnblogs.com/wuchanming/p/4116144.html