题解 | #小红的数组清空#
小红的数组清空
https://www.nowcoder.com/practice/c0784de498ca4779b3dc2a75fddcf12b
就是纯模拟。因为我要清空所有的数组,并且根据题目条件可知,我们肯定要从最小的数字开始删除。
代码如下:
#include<iostream>
using namespace std;
#include<map>
#include<set>
int main()
{
set<int>s;
map<int,int>mp;
int n,a;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a;
if(mp[a]==0)
s.insert(a);
mp[a]++;
}
int sum=0;
while(!s.empty())
{
sum++;
int p=*(s.begin());
while(mp[p+1])
{
mp[p]--;
if(mp[p]==0)
s.erase(p);
p++;
}
mp[p]--;
if(mp[p]==0)
s.erase(p);
}
cout<<sum;
return 0;
}
网易游戏公司福利 643人发布
查看10道真题和解析