解决此题的关键在于如何排序,我们可以利用冒泡排序或者其他排序,而我用到的是sort()方法,让数组从小到大的排列,然后再利用if语句判断两个相邻的数组的值是否相等,若相等,则计时器count自加一,如果相邻数组不相等,则进行相应的输出,但通过判断两个相邻的数组相等会造成一个漏洞,就是无法对最后一个数进行输出,基于此,我们还要对最后一个数组稍作处理,即可完成此题。
import java.util.*; public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] s=new int[n];
int count=1;
for(int i=0;i<n;i++) {
s[i]=sc.nextInt();
}
Arrays.sort(s);
for(int j=0;j<n-1;j++) {
if(s[j]==s[j+1]) {
count++;
}
else {
System.out.print(s[j]+" "+count);
count=1;
System.out.println();
}
}
int sum=0;
for(int i=0;i<n;i++) {
if(s[i]==s[n-1]) {
sum++;
}
}
System.out.print(s[n-1]+" "+sum);
}
}