zoukankan      html  css  js  c++  java
  • 57-出现次数最多的整数(坑)

     
                  算法训练 出现次数最多的整数  
    时间限制:1.0s   内存限制:512.0MB
        
      问题描述
      编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。
      输入格式:第一行是一个整数NN £ 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。
      输出格式:输出只有一行,即出现次数最多的那个元素值。
    输入输出样例
    样例输入
    5
    100
    150
    150
    200
    250
    样例输出
    150
     
    思路:这题思路很简单,无论是直接计算,还是存储下来,都可以,唯一的坑就是n居然能<=0,哇,刚开始死活都过不了80分,难受!!!
     
    #include <iostream>
    #include <cstring>
    using namespace std;
    int a[30];
    
    int main(){
    	int n;
    	int x, mu = 0, ct = 1, max = 0, maxn;
    	cin >> n;
    	if(n <= 0){   //坑啊 
    		return 0;
    	}
    	cin >> a[0];
    	maxn = a[0];
    	for(int i = 1; i < n; i++){
    		cin >> a[i];
    		if(a[i - 1] == a[i]){
    			ct++;
    		}
    		else{
    			if(ct > max){
    				max = ct;
    				maxn = a[i - 1];
    			}
    			ct = 1;
    		}
    	}
    	if(ct > max){
    		maxn = a[n - 1];
    	}
    	cout << maxn << endl;
    	return 0;
    }
    

      

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    using namespace std;
    int a[1000];
    int b[1000];
    
    int fun(int low, int high, int x){
    	int mid;
    	while(low < high){
    		mid = (low + high) / 2;
    		if(a[mid] == x){
    			return mid;
    		}
    		else if(a[mid] < x){
    			low = mid + 1; 
    		}
    		else{
    			high = mid;
    		}
    	}
    	return -1;
    }
    
    int main(){
    	int n;
    	cin >> n;
    	if(n <= 0){   //坑啊 
    		return 0;
    	}
    	int ct = 0, x;
    	for(int i = 0; i < n; i++){
    		cin >> x;
    		int wei = fun(0, ct, x);
    		if(wei != -1){
    			b[wei]++;
    		}
    		else{
    			a[ct] = x;
    			b[ct]++;
    			ct++;
    		}
    	}
    	int max = 0, p = 0;
    	for(int i = 0; i <= ct; i++){
    		if(max < b[i]){
    			max = b[i];
    			p = i;
    		}
    	}
    	cout << a[p] << endl;
    	return 0;
    }
    

      

  • 相关阅读:
    11月2日
    Rain和小爱的幸福山洞
    乍冷初寒
    支付宝接口源代码
    因没有设置文件夹权限导致的发布的页面不能在文本中写人数据
    asp.net真的是并行处理request的吗?
    Javascript学习笔记
    .net Windows服务程序和安装程序制作图解
    String.Trim()真相大揭秘
    c#基础知识总结学习
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/8463859.html
Copyright © 2011-2022 走看看