zoukankan      html  css  js  c++  java
  • 20-算法训练 出现次数最多的整数

                            算法训练 出现次数最多的整数  
    时间限制:1.0s   内存限制:512.0MB
        
      问题描述
      编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。
      输入格式:第一行是一个整数NN £ 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。
      输出格式:输出只有一行,即出现次数最多的那个元素值。
    输入输出样例
    样例输入
    5
    100
    150
    150
    200
    250
    样例输出
    150
     
    注意:题目有一组恶心且垃圾的数据!!!
    import java.util.HashMap;
    import java.util.Scanner;
    
    public class Main {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner cin = new Scanner(System.in);
    		int[] butong = new int[30];
    		int[] cishu = new int[30];
    		int n;
    		n = cin.nextInt();
    		
    		if(n <= 0) {  //坑!!!!!!!!!!!!!智障吧,整数的个数还可能小于0!!!!
    			return ;
    		}
    		
    		int bt = 0, x;
    //		HashMap<int, int> map = new HashMap<int, int>();
    		HashMap<Integer, Integer> map = new HashMap<>();
    		for(int i = 0; i < n; i++) {
    			x = cin.nextInt();
    			if(map.containsKey(x)) {
    				map.put(x, map.get(x)+1);
    			}
    			else {
    				map.put(x,1);
    				butong[bt++] = x;
    			}
    		}
    		int mx = -1;
    		int mm = -0x3f3f3f3f;
    		for(int i = 0; i < bt; i++) {
    			int cii = map.get(butong[i]);
    			if( cii > mx) {
    				mx = cii;
    				mm = butong[i];
    			}
    			if(cii == mx) {
    				if(mm > butong[i]) {
    					mm = butong[i];
    				}
    			}
    		}
    		System.out.println(mm);
    	}
    
    }
    

      

    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main {
    
    	public static void main(String[] args) {
    		Scanner cin = new Scanner(System.in);
    		int n = cin.nextInt();
    		
    		if(n <= 0) {  //坑!!!!!!!!!!!!!智障吧,整数的个数还可能小于0!!!!
    			return ;
    		}
    		
    		long x, cnt = 0, min = -0x3f3f3f3f;
    		long bf = -0x3f3f3f3f;
    		long dangci = 0;
    		for(int i = 0; i < n; i++) {
    			x = cin.nextLong();
    			if(x == bf) {
    				dangci++;
    			}
    			else {
    				if(cnt < dangci) {
    					cnt = dangci;
    					min = bf;
    				}
    				else if(cnt == dangci && min > bf) {
    					cnt = dangci;
    					min = bf;
    				}
    				bf = x;
    				dangci = 1;
    			}
    		}
    		if(cnt < dangci) {
    			cnt = dangci;
    			min = bf;
    		}
    		else if(cnt == dangci && min > bf) {
    			cnt = dangci;
    			min = bf;
    		}
    		System.out.println(min);
    	}
    }
    

      

  • 相关阅读:
    CSS禁止换行
    oracle时间转换:12小时24小时制
    三层架构各层次的职责
    Oracle截取字符串和查找字符串
    "......"的类型初始值设定项引发异常
    Oracle中对现有表增加列
    CSS 设置table 样式
    Aspose.Cells 根据Excel模板导出数据统计
    利用正则表达式限制网页表单里的文本框输入内容
    Table 边框 css设置
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/10421600.html
Copyright © 2011-2022 走看看