1.哎,出错了好多次
class Solution {
public int longestConsecutive(int[] nums) {
if(nums.length==0) return 0;
if(nums.length==1) return 1;
Arrays.sort(nums);
int max=0,pos=0,i,k=0;
for(i=1;i<nums.length;i++){
if(nums[i]==nums[i-1]) k++;
if(nums[i]-nums[pos]!=i-pos-k){
max=Math.max(max,i-pos-k);
pos=i;
k=0;
}
}
max=Math.max(max,i-pos-k);
return max;
}
}
1.先排序
2.记录每一段连续序列的长度,然后更新max
但是我中间出了很多次问题,在测试例子上,
我一开始并没有考虑重复的问题,就是0,1,1,2 然后就加了k,但是没有在更新pos的后面令k=0,
然后类似于 0,1,1,2,4,5,6就又错了,
总之,在统计一段连续的序列时,要考虑数组的更新 ,如果又重新开始,记得k=0