请问为什么这样双指针 测试点2 3 4 TLE了
查看原帖
请问为什么这样双指针 测试点2 3 4 TLE了
345391
Smiling0316楼主2021/4/8 16:27
#include <bits/stdc++.h>
using namespace std;
const int N = 1e7+10;
int a[N], n, c;

int main()
{
    cin >> n >> c;
    
    for(int i = 0 ; i < n ; i++) cin >> a[i];
    sort(a, a + n);
    int cnt = 0;
    for(int i = 0 ; i < n ; i++)
    {
        int j = n - 1;
        while(i < j && a[j] - a[i] > c) j--;
        while(i < j && a[j] - a[i] == c) cnt ++, j--;
    }
    cout << cnt << endl;
    return 0;
}
2021/4/8 16:27
加载中...