请大佬帮忙看一下问题出在哪里
查看原帖
请大佬帮忙看一下问题出在哪里
536677
geek2103楼主2021/8/15 15:08
#include<bits/stdc++.h>
using namespace std;

int n, ans = INT_MAX, cnt = 0, flag = 1, d[100010], p[100010];

int main () {
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> d[i];
    }
    sort (d, d + n);

    for (int i = 0; i < n - 1; i++) {
        if (d[i] + 1 == d[i + 1]) {
            p[i] = 1;
        }
    }

    if (p[0] == 0) {
        cout << 1 << endl;
        return 0;
    }
    for (int i = 0; i < n - 1; i++) {
        if (p[i] == 0 && p[i + 1] == 0) {
            ans = 1;
            flag = 0;
            cout << ans << endl;
            return 0;
        }
    }
    
    if (flag == 1) {
        for (int i = 0; i < n; i++) {
            if (p[i] == 1) {
                for (int j = i; j < n; j++) {
                    if (p[j] == 1) {
                        cnt++;
                    }
                    else if (p[j] == 0 || j == n - 1) {
                        ans = min (ans, cnt);
                        cnt = 0;
                        i = j;
                        break;
                    }
                }
            }
        }
        ans++;
    }

    cout << ans << endl;
}
2021/8/15 15:08
加载中...