不重复数字

2020-09-11 00:10:54 浏览数 (1)

题意:看到题目就能明白吧

思路:我们知道,集合具有 去重性 的性质!

如果你是直接吧数存入然后输出的,是不正确的,set内部会有排序,从小到大,程序如下;

代码语言:javascript复制
#include<bits/stdc  .h>

using namespace std;
set<int> s;
int main(){
	int t;
	cin>>t;
	
	while(t--){
		int n;
		cin>>n;
		while(n--){
			int num;
			cin>>num;
		    s.insert(num);
		}	
		set<int>::iterator it; 
		             
        for(it=s.begin();it!=s.end();it  ){
        	cout<<*it<<" ";
		}
		s.clear(); 
	}

	return 0;
} 

AC 代码

代码语言:javascript复制
#include<bits/stdc  .h>
using namespace std;
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		set<int> s;
		int n;
		scanf("%d",&n);
		for(int i=1;i<=n;i  )
		{
			int num;
			scanf("%d",&num);
			if(!s.count(num))//集合中是否存在这个元素,不存在的话就将其插入。然后输出~
			{
				s.insert(num);
				if(n==1)
				 printf("%d",num);
				else
				 printf("%d ",num);
			}
			  
		}
		
	}
	return 0; 
}

0 人点赞