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

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

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

                import java.util.Scanner;

      
  1. public class Main {
  2. public static void main(String[] args) {
  3. // TODO Auto-generated method stub
  4. Scanner sc=new Scanner(System.in);
  5. int n=sc.nextInt();
  6. if(n>0){
  7. int []a=new int[n];
  8. for(int i=0;i<n;i++){
  9. a[i]=sc.nextInt();
  10. }
  11. int []count=new int[n];
  12. for(int i=0;i<n-1;i++){
  13. for(int j=0;j<n;j++){
  14. if(i!=j && a[i]==a[j]){
  15. count[i]++;
  16. }
  17. }
  18. }
  19. int max=0;
  20. for(int i=0;i<n;i++){
  21. if(count[i]>max)
  22. max=count[i];
  23. }
  24. for(int i=0;i<n;i++){
  25. if(count[i]==max){
  26. System.out.println(a[i]);
  27. break;
  28. }
  29. }
  30. }
  31. }
  32. }


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

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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