2 条题解

  • 0
    @ 2024-12-26 20:08:15
    #include<bits/stdc++.h>
    using namespace std;
    
    void quchong(int arr[],int mx,int length)
    {
    	int i,sum;
    	sum = length;
    	int *buckets;
    	buckets = (int *)malloc(sizeof(int)*(mx+1));//给桶分配空间
    	memset(buckets,0,sizeof(int)*(mx+1));//给桶里面的值全部赋值为零
    	for(i=0;i<length;i++)
    	{
    		buckets[arr[i]]++;//进行去重
    		if(buckets[arr[i]]>=2)
    		{
    			sum--;
    		}
    	}
    	cout<<sum<<endl;
    	// 输出去重之后的值
    	for(i=0;i<=mx;i++)
    	{
    		if(buckets[i])
    		{
    			cout<<i<<" ";
    		}
    	}
    }
    int main()
    {
    	int t,n,i;
    	cin>>t;//实验的测试样例的个数
    	while(t--)
    	{
    		cin>>n;//需要生成随机数的个数
    		int arr[n];
    		//srand(time(NULL));//建立时间种子,生成随机数的种子
    		for(i=0;i<n;i++)
    		{
    			cin>>arr[i];
    		}
    		//生成之后进行排序
    		sort(arr,arr+n);//升序排列,这是快速排序
    		//使用桶排序进行去重
    		quchong(arr,arr[n-1],n);
    		cout<<endl;
    	}
    }
    
    • 0
      @ 2023-11-14 21:00:03
      #include<stdio.h>
      #include<algorithm>
      #include<string.h>
      using namespace std;
      int a[100000];
      int box[100000];
      int main()
      {
      	int t;
      	scanf("%d",&t);
      	while(t--)
      	{
      		int n;
      		scanf("%d",&n);
      		int cnt=n;
      		memset(box,0,sizeof(box));
      		for(int i=0;i<n;i++)
      		{
      			scanf("%d",&a[i]);
      			box[a[i]]++;
      			if(box[a[i]]>1)
      			{
      			cnt--;	
      			a[i]=-1;
      			}
      			
      		}
      		for(int i=0;i<n;i++)
      		sort(a,a+n);
      		printf("%d\n",cnt);
      		for(int i=0;i<n;i++)
      		{
      			if(a[i]!=-1)
      			printf("%d ",a[i]);
      		}
      			 printf("\n");
      } 
      }
      
      
      • 1

      信息

      ID
      190
      时间
      3000ms
      内存
      128MiB
      难度
      7
      标签
      (无)
      递交数
      727
      已通过
      183
      上传者