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;
    	}
    }
    

    信息

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