private int GetMaxInN(int[] A,int k){ int len=A.length; int l=0,r=0; //+1是为了对齐 没有其他作用 int[] freq=new int[len+1]; int count=0; int res=0; //基本工作完成了 开始遍历 while(r<len){ if(freq[A[r]]==0){ count++; } freq[A[r]]++; //最巧妙的是还有减的部分 while(count>k){ freq[A[l]]--; if(freq[A[l]]==0){ count--; } l++; } res+=r-l+1; r++; } return res; }