标签:return 更新 col view 查找 代码 例子 desc ons
题目大意:给出一个数组,找出其中连续数值最多的长度。例子如下:
法一:o(nlgn)。先排序,然后遍历一遍,查找连续数值,一旦不连续,则更新ma。代码如下(耗时1ms):
1 public int longestConsecutive(int[] nums) { 2 if(nums.length == 0) { 3 return 0; 4 } 5 //排序 6 Arrays.sort(nums); 7 int cnt = 1, ma = 1; 8 //逐一遍历 9 for(int i = 1; i < nums.length; i++) { 10 //去除重复值 11 if(nums[i] == nums[i - 1]) { 12 continue; 13 } 14 //如果连续 15 else if(nums[i] == nums[i - 1] + 1) { 16 cnt++; 17 } 18 //一旦不连续,更新ma和cnt 19 else { 20 if(cnt > ma) { 21 ma = cnt; 22 } 23 cnt = 1; 24 } 25 } 26 //由于可能整个数组一直连续,所以最后还应该再判断一下 27 if(cnt > ma) { 28 ma = cnt; 29 } 30 return ma; 31 }
128.Longest Consecutive Sequence
标签:return 更新 col view 查找 代码 例子 desc ons
原文地址:https://www.cnblogs.com/cing/p/8806664.html