感觉已经是相对简洁的代码了(可以加个n%sorts结果不为零时直接return false),只有两个单层循环但还是超时了. . .
这个题目主要是排序遍历数组,大概编程的思路就是:
#include<iostream>
#include<algorithm>
using namespace std;
const int MAXN=10005;
int deck[MAXN];
int n=1;
int main()
{
while(cin>>deck[n]) n++;
n--;
sort(deck+1,deck+n+1);
bool flag=true;
int x=0,maxx=-0x3f3f3f3f;
for(int i=1;i<n;i++)
{
if(deck[i]!=deck[i+1])
{
if(x+1!=maxx&&maxx!=-0x3f3f3f3f)
{
cout<<"false";
return 0;
}
else maxx=max(x+1,maxx);
x=0;
}
x++;
}
cout<<"true";
}
//希望对您有帮助 qwq
```
不知道你这个问题是否已经解决, 如果还没有解决的话: