题意:进行排序,把重复的删掉就行了
#include <iostream>
#include <string.h>//用sort需要的
#include <algorithm>
using namespace std;
int main()
{
int n,t;
long long a[200000];
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
}
sort(a+1,a+n+1);//+1表示从a[1]开始,否则是从a[0]开始
int sum=0;
for(int i=1;i<=n-1;i++)//i<=n-1,因为有a[i+1],由于是多组输入,有t组,上一次的个数如果比这次得多,上一次的数会保留,不会是默认的0了
{
if(a[i]==a[i+1])
sum++;
}
printf("%d\n",n-sum);
}
return 0;
}