也可以使用排序,不过时间复杂度为O(nlogn).
int longestConsecutive(vector<int>& nums) {
set<int> st(nums.begin(), nums.end());
int longest = 0;
for(auto num:st){
if(!st.count(num-1)){
int length = 1;
int index = 1;
while(st.count(num+index)){
++length;
++index;
}
longest = max(longest,length);
}
}
return longest;
}