题解
2024-02-27 22:46:55
发布于:上海
59阅读
0回复
0点赞
因为它要保证不重复,所以可以使用set结构
AC代码如下:
#include<iostream>
#include<algorithm>
#include<set>
using namespace std;
set<int> st;
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int s[100] = {};
for(int i=0;i<n;i++){
cin>>s[i];
int cnt=count(s,s+i****[i]);
if(cnt>=2)s[i]*=-1;
st.insert(s[i]);
}
cout<<st.size()<<endl;
st.clear();
}return 0;
}
全部评论 1
是不是..........
#include<iostream>
#include<algorithm>
#include<set>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int s[105];
for(int i=0;i<n;i++) cin>>s[i];
set<int> st;
set<int> used; //记录该绝对值是否已经放过正数版本
for(int i=0;i<n;i++){
int x=s[i];
int cnt=count(s,s+n,x);
int absx=abs(x);
int val;
if(cnt>=2){
if(x==0){
val=0;
}else if(!used.count(absx)){
val=x;
used.insert(absx);
}else{
val=-x;
}
}else{
val=x;
}
st.insert(val);
}
cout<<st.size()<<endl;
}
return 0;
}1周前 来自 湖南
0








有帮助,赞一个