题目:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
class Solution {
public int longestConsecutive(int[] nums) {
if(nums.length == 0) return 0;
Arrays.sort(nums);
int res = 1;
// 计算每一次的最长序列长度
int count = 1;
for(int i = 1; i < nums.length; i++){
// 重置
count = 1;
// 有两种情况需要处理
// nums[i] - 1 == nums[i-1] 需要将递增的序列数+1
// nums[i] == nums[i-1] 跳过该节点
while(i < nums.length && (nums[i] - 1 == nums[i-1] || nums[i] == nums[i-1])){
if(nums[i] - 1 == nums[i-1])
count++;
i++;
res = Math.max(res, count);
}
}
return res;
}
}