【思路】:题目已经说明是按大小的顺序输入的,所以直接判断与前一个是否相等就行。注意:题目有一个条件没说清楚(或者是因为乱码),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