CCF--出现次数最多的数--用java语言实现

题目要求:

CCF--出现次数最多的数--用java语言实现_第1张图片

这道题有很多做法,我自己用桶排序原理实现了一遍。但在网上看到了一个挺不错的思路,就自己再实现一遍。这是原作者的博客地址:https://blog.csdn.net/gamer_gyt/article/details/44541117

思路:
整体思路:定义两个数组,长度一致。数组1用来存放输入的数,数组2用来记录数组1元素出现的次数(数组2元素表示数组1出现相同的次数,数组2下标与数组1的下标一致,这样就可以用根据数组2的元素大小来判定arr1中哪些值是出现最多,然后找出最小的输出)。数组1与数组2的关系如下:
CCF--出现次数最多的数--用java语言实现_第2张图片
判断出现次数最多:先记录arr2中最大的元素max(也就是arr1中出现最多的数)和它的下标位置temp。接着将arr1中出现次数最多的数赋给min,然后找出最小的值输出。


代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int min = 0;		//出现次数相同中最小的数
		int max = 0;		//arr2最大的元素
		int temp = 0;
		
		Scanner sc = new Scanner(System.in);
		int n  = sc.nextInt();
		
		int arr1[] = new int[n];		//arr1作用:输入的数存放在arr1
		int arr2[] = new int[n];		//arr2作用:将arr1元素出现的次数作为arr2的元素
		for(int i=0;imax){			//找出arr2中最大的元素
	        
	        max = arr2[i];			        //将arr2中最大的元素给max
	        temp = i;				//用temp记住最大元素的下标位置
	     
	        }
	       }
		
	 	min = arr1[temp];			//在数组arr1中找到出现次数最多的那个元素
	 	for(int i = 0;i



你可能感兴趣的:(CCF--出现次数最多的数--用java语言实现)