删除元素使数组去重 - 正经题解
2025-02-05 14:36:08
发布于:广东
26阅读
0回复
0点赞
这题数据范围不算太大,可以直接用桶模拟。
#include <iostream>
#include <cstdio>
using namespace std;
int a[105], n;
int bucket[105], ct;
int main(){
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> n;
for(int i = 1; i <= n; i++) cin >> a[i], bucket[a[i]]++;//用桶记录出现的次数
for(int i = 1; i <= 100; i++){
if(bucket[i] > 1) ct++;//如果出现次数大于1,就记录下来
}
if(ct == 0){//注意特判没有重复元素的情况
cout << 0;
return 0;
}
for(int i = 1; i <= n; i++){
if((--bucket[a[i]]) == 1) ct--;//删除元素
if(ct == 0){//如果没有重复元素直接输出
cout << i;
return 0;
}
}
}
时间复杂度 。
这里空空如也
有帮助,赞一个