题目链接:128. 最长连续序列 - 力扣(LeetCode)
思路就是,先将数组排序,遇见相同的就跳过,如果相邻两位差1,则结果加1,特殊的,如果数组为空,则结果为0,如果数组中只有一个数,则结果为1。
public static int longestConsecutive(int[] nums) {
Arrays.sort(nums);
int ans = 1;
int res = 1;
if (nums.length==0)
return 0;
for (int i = 0; i < nums.length - 1; i++) {
if (nums[i]==nums[i+1])
continue;
if (nums[i + 1] == nums[i] + 1) {
res++;
} else {
res = 1;
}
ans = Math.max(ans, res);
}
return ans;
}
测试代码:
int[] nums = {1,2,0,1};
运行结果:
3
Process finished with exit code 0