使用双指针进行模拟即可。

AC code:

#include <bits/stdc++.h>
using namespace std;
#define ll long long

int main() {
    int n, k;
    cin >> n >> k;
    vector<ll> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    sort(a.begin(), a.end());
    int max_len = 0;
    int i = 0;
    for (int j = 0; j < n; j++) {
        while (a[j] - a[i] > k) {
            i++;
        }
        if (j - i + 1 > max_len) {
            max_len = j - i + 1;
        }
    }
    cout << max_len << endl;
    return 0;
}