题解 | #数组中的最长连续子序列#
数组中的最长连续子序列
http://www.nowcoder.com/practice/eac1c953170243338f941959146ac4bf
思路:
1.先排序
2.遍历数组
1)如果前后连续,则加1,并判断当前值与max的大小,将最大值赋给max。
2)不连续,则把当前数组的值作为第一个,也就是计数重新从1开始。
3.返回max
public int MLS (int[] arr) { // write code here int cnt=1; int max=1; Arrays.sort(arr); for(int i=1;i<arr.length;i++){ if(arr[i]-arr[i-1]==1){ cnt++; max=cnt>max?cnt:max; }else if(arr[i]!=arr[i-1]){ cnt=1; } } return max; }