🌟1.排序
🍎解题思路:
1.第一个接收废掉,其余按照正常数组元素接收,直到没有数据
2.排序 + 特判,记录断号(a[i] - a[i - 1] == 2)和重号元素(a[i] == a[i - 1])
3.输出n,m即可
🍇时间复杂度
O(NlogN)
#include<bits/stdc++.h>
using namespace std;
#define rep(i, a, b) for(int i = a; i < b; i++)
const int N = 10010;
int a[N], idx = 1;
int main()
{
int _; cin >> _;
int x;
while(cin >> x) //idx就是我们的上界
a[idx++] = x;
sort(a + 1, a + idx);
int n, m;
rep(i, 2, idx)
{
if(a[i] - a[i - 1] == 2)
n = a[i] - 1; //断号
if(a[i] == a[i - 1])
m = a[i]; //重号
}
cout << n << " " << m;
return 0;
}
时间应为O(nlogn)
okk谢谢指正~