滑动窗口好理解 ```java for(int l = 0,r = 0; r < n;r++) { if(r > 0) { k -= a[r] - a[r - 1] - 1; } while(k < 0) { k += a[l + 1] - a[l] - 1; l++; } // io.printf("left = %s\n" ,left); ans = Math.max(ans,a[r] - a[l] + 1 + k); } io.println(Math.min(ans, m)); ```