1、题目描述
求一个整数序列中最长的连续子序列个数,比如输入:[100, 4, 200, 1, 3, 2],输出:4
2、解题思路
(1)先排序,从有序序列中找连续子序列,时间复杂度为O(nlogn),代码如下:
int longestConsecutive(vector<int>& nums) {
if(nums.size()==0)
return 0;
sort(nums.begin(),nums.end());
int count = 1;
int len = 1;
int j = 1;
for(int i=1;i<nums.size();i++){
if(nums[i]-nums[i-j]==1){
count++;
if(len<count)
len = count;
j=1;
}
else if(nums[i]==nums[i-j])
j++;
else{
j = 1;
count=1;
}
}
return len;
}