题目链接
只需要从最后找出一个序列
#include<bits/stdc++.h>
using namespace std;
int a[200004];
int main()
{
int t;
cin >> t;
while (t--)
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
int i;
for (i = n - 1; i >= 1; i--)
if (a[i] > a[i - 1])
break;
int j;
for (j = i - 1; j >= 0; j--)
if (a[j] > a[j + 1])
break;
cout << j + 1 << endl;
}
}
#include<bits/stdc++.h>
using namespace std;
int a[56];
int main()
{
int t;
cin >> t;
while(t--)
{
int n;
cin >> n;
memset(a, 101, sizeof(a));
for (int i = 0; i < n; i++)
cin >> a[i];
bool flag = false;
sort(a, a + n + 1);
for (int i = 0; i < n - 1; i++)
{
if (a[i] - a[i + 1] > 1 || a[i] - a[i + 1] < -1)
{
cout << "No" <<endl;
flag = true;
break;
}
}
if (flag == false) cout << "Yes" <<endl;
}
return 0;
}
排序之后只要有两个数差值大于1则不可以