写在前面
即满足有 E 天骑车超过 E 英里的最大整数 E
- map封装数据
- 道路有些曲折,需要整体把握测试用例;否则拿到分数有限
- 建议尝试其他数据结构,例如参考文章,解决该问题
- 类似以 int 下标为 索引 的思想
- 失分点
- 总体而言,题目相对容易
测试用例
3
1 2 3
6
0 1 2 3 4 5
10
6 7 7 9 3 10 8 2 7 8
5
10 10 5 10 10
5
10 10 3 10 10
3
3 3 4
ac代码
#include<map>
#include<iostream>
using namespace std;
int main()
{
int n,zzs;
cin >> n;
map<int, int> qcjl;
for(int i=0; i<n; i++)
{
scanf("%d", &zzs);
qcjl[zzs] += 1;
}
int i,cnt=0,result=0;
if(qcjl[0]>0) cnt+=1;
for(i=1; i<=n; i++)
if(qcjl[i]>0)
{
cnt += qcjl[i];
if(n-cnt>=i)
result = i;
else
break;
}
if(result<=0)
{
if(cnt<=0) result = n;
else result = i-1;
} else {
result = result > n-cnt ? result : n-cnt;
}
cout << result << endl;
return 0;
}
其他链接