【思路】:题目已经说明是按大小的顺序输入的,所以直接判断与前一个是否相等就行。注意:题目有一个条件没说清楚(或者是因为乱码),N是小于20的,所以有可能是负数。
【AC代码】:
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <cstdio>
#include <cstring>
using namespace std;
#define MAX 20+5
struct Num
{
int data;
int t;
};
int main()
{
freopen("in.txt", "r", stdin);
int n = 0, i = 0, cnt = 1;
Num num[MAX]={0};
//input
cin >> n;
if (n > 0)
{
cin >> num[0].data;
num[0].t = 1;
}
for (i = 1; i < n; i++)
{
int temp = 0;
cin >> temp;
if (temp == num[cnt-1].data)
num[cnt-1].t++;
else
{
num[cnt].data = temp;
num[cnt].t++;
cnt++;
}
}
//output
int max_t = 0, pos = 0;
for (i = 0; i < cnt; i++)
{
if (num[i].t > max_t)
{
max_t = num[i].t;
pos = i;
}
}
if (n > 0)
cout << num[pos].data;
}原文:http://blog.csdn.net/weijj6608/article/details/44601527