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,否则,重新计数。