CCF可以用java语言吗_CCF--出现次数最多的数--用java语言实现

题目要求:

8c9dddcb8ba861b1c1bce9c22ff20170.png

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

思路:

整体思路:定义两个数组,长度一致。数组1用来存放输入的数,数组2用来记录数组1元素出现的次数(数组2元素表示数组1出现相同的次数,数组2下标与数组1的下标一致,这样就可以用根据数组2的元素大小来判定arr1中哪些值是出现最多,然后找出最小的输出)。数组1与数组2的关系如下:

f1bf01ef4f34f8cca913483f3c978d0a.png

判断出现次数最多:先记录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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值