众数问题:给定含有N个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数,多重集合S中重数最大的元素称为多重集合S的众数,众数的重数称为多重集合S的重数,试求一个给定多重结合的重数和众数;
例如:S={a,b,b,b,f,f,4,5}的重数是3,众数是b
import java.util.*; public class ZS{ public static void main(String[] arg){ int n,m; int[] num=new int[101]; int[] count=new int[101]; Scanner input=new Scanner(System.in); n=input.nextInt(); for(int l=0;l<n;l++){ m=input.nextInt(); for(int i=0;i<m;i++){ num[i]=input.nextInt();//元素值 count[i]=1; } if(m==1){ System.out.println(num[0]+" 1"); continue; } for(int i=0;i<m-1;i++){//count数组用来存放该元素出现的次数 for(int j=i+1;j<m;j++){ if(num[i]==num[j]) count[i]+=1; } } int max=count[0]; int flag=0; for(int i=1;i<m;i++){//选择出现次数最大的元素 if(count[i]>max){ max=count[i]; flag=i; } } System.out.println(num[flag]+" "+count[flag]);//输出众数和重数 } } }