一篇普通的题解
2025-01-08 13:00:51
发布于:安徽
0阅读
0回复
0点赞
首先,我们需要定义一个数组a,和一个数组t
a[i]:每一个数的值
t[i]: i 这个数出现的次数
也就是
int a[100005],t[100005];//n<10^5 a[i]<10^5
int n;//定义n
然后我们要循环输入
for(int i=1;i<=n;i++){
cin>>a[i];
}
将每一个数 a[i]
存入t数组里,则t数组中下标为a[i]的加一
代码为
t[a[i]]++;
然后我们遍历1-n,如果当前t[a[i]]不为0
则cnt++;然后将t[a[i]]=0;
int cnt=0;
for(int i=1;i<=n;i++){
if(t[a[i]]!=0){
cnt++;
t[a[i]]=0;
}
}
所有代码合起来为
#include<bits/stdc++.h>
using namespace std;
int a[100005];
int t[100005];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
t[a[i]]++;
}
int cnt=0;
for(int i=1;i<=n;i++){
if(t[a[i]]!=0){
cnt++;
t[a[i]]=0;
}
}
cout<<cnt;
return 0;
}
这里空空如也
有帮助,赞一个