从简单的刷起吧~~
思路:
①初始化两个数组:a1用来存储输入的数据
a2用来存储a1中每个数据出现的次数
注意两个数组下标的对应
②找出a2中的最大元素max,并记录下标,找到对应的a1中的数值
③如若max有多个,映射到a1中,找出第一个后,分别和第二个、第三个……进行比较,选取最小的
知识点:
1、标准化输入输出:Scanner类
2、数组的创建:
①初始化
int a[ ] = {1,2,3,4,5};
②用关键字new来创建
int a[ ] = new int [5]; //创建一个有5个元素的整型数组a
③使用 clone( )方法
int [ ]b = (int [ ])a.clone( ); //数组a和数组b的类型完全一致
④引用其他数组
int [ ]b = a;
3、找数组中的最大元素:循环比较
详细代码:
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
int min=0; //出现相同次数的最小数字
int max=0; //最多次数
int temp=0;
Scanner sc = new Scanner(System.in);
int n= sc.nextInt();
int a1[]= new int[n];
int a2[]= new int[n];
for(int i=0;i<n;i++) {
a1[i]=sc.nextInt();
a2[i]=0;
}
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
if(a1[j]==a1[i])
a2[i]++; //可实现数量依次增加,不用设置单独的变量
}
}
for(int i=0;i<n;i++) {
if(a2[i]>max) {
max=a2[i];
temp=i; //记录下标
}
}
min=a1[temp];
for(int i=0;i<n;i++) {
if(a2[i]==max) {
if(min>a1[i])
min=a1[i];
}
}
System.out.println(min);
}
}
人嘛,总该做出点什么不是?