题目:
分析:
根据题目要求,时间复杂度为O(n),可惜我还做不到这一点,所以我用了最普通的暴力枚举:先对数组进行排序,然后依次寻找最长连续序列 时间复杂度是O(nlog(n))
代码:
class Solution {
public int longestConsecutive(int[] nums) {
int max=0;
if(nums.length<=1) return nums.length;
Arrays.sort(nums);
int temp=nums[0];
int count=1;
for(int i=1;i<nums.length;i++){
if(nums[i]==temp) continue;
if(++temp==nums[i]){
count++;
continue;
}else {
temp=nums[i];
max=Math.max(max,count);
count=1;
}
}
max=Math.max(max,count);
return max;
}
}