罗小白


私信TA

用户名:Timmmmy

访问量:18086

签 名:

隔一年又回来刷题了...

等  级
排  名 141
经  验 7409
参赛次数 0
文章发表 46
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

有问题可以互相交流,共同提高 欢迎私信,请多指教:)

解题思路:
        因为输入是排好序的,没必要开数组了,循环输入即可
注意事项:
        见注释
参考代码:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    while (cin >> n) {
        // 当前参与比较的元素
        int curElem = 0;
        // 当前输入的元素
        int tmpElem = 0;
        // 记录出现次数最多的元素
        int maxElem = 0;
        // 当前参与比较的元素 出现的次数
        int curCount = 0;
        // 出现次数最多的元素 出现的次数
        int maxCount = 0;
        
        // 输入第一个元素
        cin >> tmpElem;
        maxElem = curElem = tmpElem;
        curCount = maxCount = 1;
        
        // 输入其它元素
        for (int i = 1; i < n; ++i) {
            cin >> tmpElem;
            // 输入的元素 == 当前参与比较的元素
            if (tmpElem == curElem) {
                // 更新 当前参与比较的元素 出现的次数,可能要更新最大出现次数
                curCount++;
                if (curCount > maxCount) {
                    maxCount = curCount;
                    maxElem = curElem;
                }
            }
            // 否则,更新参与比较的元素,此时curElem已出现1次
            else {
                curElem = tmpElem;
                curCount = 1;
            }
        }
        cout << maxElem << endl;
    }
    return 0;
}


 

0.0分

0 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

  • «
  • »