Description:
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.
本提要求给定一个整数排序的数组,找到最长连续元素序列的长度。
解题思路:本题我们只需对给定数组进行排序,然后遍历找到最多的连续即可。
Solutions:
class Solution {
public:
int longestConsecutive(int[] nums) {
if(nums==null) return 0;
int len=nums.length;
if(len<=1)return len;
Arrays.sort(nums);
int res=1;
int temp=nums[0];
int cha;
int count=1;
for(int i=1;i<len;i++){
cha=nums[i]-temp;
if(cha==0) continue;
if(cha==1){
temp++;
count++;
}
else{
res=res>count?res:count;
count=1;
temp=nums[i];
}
}
res=res>count?res:count;
return res;
}
}