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

来源:互联网 发布:小甲鱼python解压密码 编辑:程序博客网 时间:2024/05/22 17:15

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

下面代码练习系统测试为90分,慢慢进步吧,加油。

import java.util.Scanner;    public class Main{        public static void main(String args[]){            Scanner in=new Scanner(System.in);            int n=in.nextInt();            int a[]=new int[n];            for(int i=0;i<n;i++){                a[i]=in.nextInt();            }            int count[]=new int[n];            for(int i=0;i<n;i++){                int temp=a[i];                for(int j=0;j<n;j++){                    if(a[j]==temp){                        count[i]++;                                     }                }            }            for (int i = 0; i < n - 1; i++)                         for (int j = 0; j < n; j++) {                if (a[i] == a[j] && i != 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.print(a[i]);                                 break;                              }                                   in.close();         }           }      }
0 0
原创粉丝点击