1
0
0
力扣hot3-最长连续序列

文章摘要
|

这道题我记得是哈希题,但是我看到这题的第一反应是借助排序,优点是代码逻辑极其简单,不容易写崩。不过坏处也很明显,排序算法的时间复杂度在O(nlogn),其瓶颈受限于Array.sort(),数据量大的时候该解法时间花费会明显变长,可能达不到要求的线性时间。哈希解法的时间复杂度应该是O(n),不过这里我先不写了(懒了)。
class Solution {
public int longestConsecutive(int[] nums) {
if(nums.length == 0) return 0;
if(nums.length == 1) return 1;
Array.sort(nums);
int longestStreak = 1;
int currentStreak = 1;
for(int i = 1; i < nums.length; i++){
if(nums[i] == nums[i-1] + 1){
currentStreak++;
}else if(nums[i] == nums[i]-1){
continue;
}else {
longestStreak = Math.max(longestStreak,cyrrentStreak);
currentStreak = 1;
}
}
return longestStreak;
}
}
