写在前面:
测试样例刚过,车就到站了,,和上海持续的阴雨天气不同,济南还是一如既往的大晴天,啊我爱这干燥又温暖的春末夏初~ 吃完饭提交代码,一遍AC,爽!
题目:
- 数组排序
单点时限: 2.0 sec
内存限制: 256 MB
给定一个长度为 N 的整数数组,按如下规则排序并输出。首先,输出重复出现次数最多的元素;出现次数相同时,按元素值由小到大输出。例如对于数组 1 2 3 3 4 2 3 1 5 7 排序后输出 3 3 3 1 1 2 2 4 5 7。
输入格式
第 1 行:一个整数 T(1≤T≤10)为问题数。
对于每组测试数据:
第 1行是一个正整数:数组长度 N(1<N<2000);
第 2 行有 N 个整数:分别为第 1 至第 N个元素的值 a1,a2,⋯,an(∀i,0≤ai<500)。任意两个整数之间由一个空格分开。
输出格式
对于每个问题,输出一行问题的编号(0 开始编号,格式:case #0: 等)。
然后在一行中输出排序后的数组元素,每两个整数之间由一个空格分开,最后一个整数后面没有空格。
样例
input
3
10
9 6 3 10 3 10 6 4 3 4
10
10 9 8 7 6 5 4 3 2 1
20
4 3 7 8 6 5 8 4 2 2 7 9 5 9 6 8 6 6 3 10
output
case #0:
3 3 3 4 4 6 6 10 10 9
case #1:
1 2 3 4 5 6 7 8 9 10
case #2:
6 6 6 6 8 8 8 2 2 3 3 4 4 5 5 7 7 9 9 10
思路:
每个case中:
变量设置:
- len 即将输入的数的个数
- num[len] 存输入的数;
- times[500],times[i] 代表num中数字 i 出现的次数(因为num中的数介于0 ~ 499)(记得初始化);
解题:
- 一个len次循环,完成num[len]和times[500]的数据输入,(即完成这组数的输入,并统计数字0~499出现的次数);
- 找到times[500]中最大元素times[i]