题目描述
给定一个正整数序列,统计序列中各个数字出现的次数。
输入格式
第一行输入一个正整数T(1≤T<20),表示有T组测试数据。
每组测试数据第一行输入一个N,表示有N个正整数(1N≤5000)。第二行输入N个正整数S(1≤S<99)。
输出格式
对应每组输入,按照从大到小的顺序,输出每个数字出现的次数输出格式为IN,其中表示数字,N表示对应数字出现的次数。每组输出间空一行
样例输入
23
331
12443
样例输出
3 211
4 2312111
public class Main{
public static void main(String[] args) {
Scanner z = new Scanner(System.in);
int T=z.nextInt();
while(T-->0)
{
int N=z.nextInt();
int[] S=new int[N];
for (int i=0;i<S.length;i++)
{
S[i]=z.nextInt();
}
for (int i=1;i<S.length;i++)
{
for (int j = i; j > 0; j--)
{
if (S[j] > S[j - 1])
{
int t = S[j];
S[j] = S[j - 1];
S[j - 1] = t;
}
}
}
int[][] result = new int[N][2];
result[0][0]=S[0];
result[0][1]=1;
int count = 0;
for (int i=1;i<S.length;i++)
{
if (S[i]==result[count][0])
{
result[count][1]++;
}
else
{
count++;
result[count][0] = S[i];
result[count][1] = 1;
}
}
for (int i=0;i<=count;i++)
{
System.out.println(result[i][0]+" "+result[i][1]);
}
System.out.println();
}
}
}