算法训练 出现次数最多的整数

举报
陈言必行 发表于 2021/08/14 00:33:10 2021/08/14
2.5k+ 0 0
【摘要】 问题描述   编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。   输入格式:第一行是一个整数 N, N£ 20;接下来有 N行,每一行表示一个...

问题描述
  编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。
  输入格式:第一行是一个整数 NN£ 20;接下来有 N行,每一行表示一个整数,并且按照从小到大的顺序排列。
  输出格式:输出只有一行,即出现次数最多的那个元素值。
输入输出样例
样例输入
5
100
150
150
200
250
样例输出
150
问题分析:
输入的数存成一个数组,然后在定义一个数组用来保存输入数组元素出现个数,然后取到第二个数组的最大值(也就是出现限次数最多的数的个数),

                import java.util.Scanner;

          public class Main {
          public static void main(String[] args) {
          // TODO Auto-generated method stub
           Scanner sc=new Scanner(System.in);
          int n=sc.nextInt();
          if(n>0){
          int []a=new int[n];
          for(int i=0;i<n;i++){
           a[i]=sc.nextInt();
           }
          int []count=new int[n];
          for(int i=0;i<n-1;i++){
          for(int j=0;j<n;j++){
          if(i!=j && a[i]==a[j]){
           count[i]++;
           }
           }
           }
          int max=0;
          for(int i=0;i<n;i++){
          if(count[i]>max)
           max=count[i];
           }
          for(int i=0;i<n;i++){
          if(count[i]==max){
           System.out.println(a[i]);
          break;
           }
           }
           }
           }
          }
      
     


注:小编会持续更新哦,,,

文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。

原文链接:czhenya.blog.csdn.net/article/details/76091835

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。