注意,for循环次数很大,所以有答案后,要及时break出来,否则会WA
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int ans1=0,ans2=0;
int n;
cin>>n;
int a[10005];
int x;
while(cin>>x)
{
a[x]++;
}
for(int i=0;i<=10000;i++)
{
if(a[i]>=1&&a[i+1]==0)
{
ans1=i+1;
}
if(a[i]>1)
{
ans2=i;
}
if(ans1&&ans2)
{
break;
}
}
cout<<ans1<<" "<<ans2<<endl;
return 0;
}
该代码示例展示了在处理大量循环时如何通过条件判断优化程序,一旦找到满足条件的答案,立即使用break跳出循环,以避免不必要的时间消耗。程序读入数据填充数组a,并寻找特定模式以确定变量ans1和ans2的值。
2200





