示例 1:
输入:nums = [100,4,200,1,3,2]
输出:4
解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4
示例 2:
输入:nums = [0,3,7,2,5,8,4,6,0,1]
输出:9
题解:排序解决
public int longestConsecutive(int[] nums) {
// 如果nums长度为0时,则返回0
if(nums.length == 0){
return 0;
}
// 1、初始化两个变量,求最大序列长度,因nums长度为0已排除外,因此,最小长度也为1
int length = 1;
int maxlength = 1;
// 2、对原先数组进行排序
Arrays.sort(nums);
for(int i =1; i < nums.length; i++) {
// 3、情况1:如果满足 后一个数等于前一个数加1,则length++
if(nums[i-1] + 1 == nums[i]){
length++;
maxlength = Math.max(length,maxlength);
//3、情况2: 如果前后两值相等,则继续下一次循环
}else if(nums[i - 1] == nums[i]){
continue;
}else{
// 不满足时,初始化length的值
length = 1;
}
}
return maxlength;
}