using System;
using System.Collections.Generic;
using System.Linq;
class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* max increasing subsequence
* @param arr int整型一维数组 the array
* @return int整型
*/
public int MLS (List<int> arr) {
// write code here
arr.Sort();
// HashSet<int> h=new HashSet<int>();
// arr.ForEach(x=>h.Add(x));
// List<int> l=new List<int>(h);
// l.Sort((x,y)=>x.CompareTo(y));
int count=0;
int cur=1;
for(int i=0;i<arr.Count-1;i++)
{
if(arr[i]+1==arr[i+1])
{
cur++;
count=count>cur?count:cur;
}
else if(arr[i]==arr[i+1])
continue;
else
{
cur=1;
}
}
return count;
}
}先排序,在往后遍历,一旦出现后面的数不等于前面的数,就看是否相连,相连则计数加1,否则,重新计数。