思路:限定了实践复杂度O(n),本来想直接用计数排序的原理解题的,但是发现测试数据尝试了从int的最小值到最大值,故直接调用arrays.sort,然后遍历一遍
public class Solution {
public int longestConsecutive(int[] nums) {
if (nums.length<2) {
return nums.length;
}
Arrays.sort(nums);
int sum=1;
int length=1;
for (int i = 1; i < nums.length; i++) {
if (nums[i]==nums[i-1]) {
continue;
}
if (nums[i]==nums[i-1]+1) {
sum++;
}else {
if (sum>length) {
length=sum;
}
sum=1;
}
}
return length>sum?length:sum;
}
}
耗时:372ms,中游