• ccf 201312-1 出现次数最多的数


    思路

    用数组下标作为数字,数组元素记录次数

    注意事项

    声明数组的时候,如果用

    int index[10000];

    会出现不为0的随机数

    #include<bits/stdc++.h>
    using namespace std;
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
    
    int main(int argc, char *argv[]) {
        int n, num;
        int index[10000] = {};    
        cin >> n;
        // 记录每个数的出现次数 
        for(int i = 0; i < n; i++){
            cin >> num;
            index[num] += 1;
        }
        
        // 记录最大数
        queue<int> q;        
        
        // 找出出现次数最大的数字
        int max = 0;
        for(int i = 0; i < 10000; i++) {
            if(index[i] > 0){                    
                if(index[i] > max){
                    max = index[i];
                    queue<int> empty;
                    swap(empty, q);            
                    q.push(i);                
                }else if(index[i] == max){
                    q.push(i);
                }
            }        
        }
        // 检查队列的长度
        if(q.size() == 1){
            cout << q.front() << endl;
        }else if(q.size() > 1){
            int min = q.front();
            q.pop();
            while(!q.empty()){
                int p = q.front();
                q.pop();
                if(p < min){
                    min = p;
                }
            }
            cout << min << endl;
        }
        return 0;
    }
  • 相关阅读:
    关于HTML5画布canvas的功能
    HTML5新标签介绍
    为HTML5添加新样式标签
    iOS开发相关图书推荐
    Android相关图书推荐
    C语言相关图书推荐
    C#相关图书推荐
    C++相关图书推荐
    JavaScript相关图书推荐
    Java相关书籍推荐
  • 原文地址:https://www.cnblogs.com/YC-L/p/13166273.html
Copyright © 2020-2023  润新知