【蓝桥杯官网试题 - 算法训练 】P0502(乱搞,tricks)
生活随笔
收集整理的這篇文章主要介紹了
【蓝桥杯官网试题 - 算法训练 】P0502(乱搞,tricks)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題干:
編寫一個程序,讀入一組整數,這組整數是按照從小到大的順序排列的,它們的個數N也是由用戶輸入的,最多不會超過20。然后程序將對這個數組進行統計,把出現次數最多的那個數組元素值打印出來。如果有兩個元素值出現的次數相同,即并列第一,那么只打印較小的那個值。例如,假設用戶輸入的是“100 150 150 200 250”,則輸出為150。
輸入:
6
100 150 150 200 200 250
輸出:
150
解題報告:
? ?亂搞。倒著遍歷可以減少代碼量。
AC代碼:
#include<cstdio> #include<iostream> #include<algorithm> #include<queue> #include<map> #include<vector> #include<set> #include<string> #include<cmath> #include<cstring> #define ll long long #define pb push_back #define pm make_pair using namespace std; const int MAX = 2e5 + 5; ll a[MAX]; int main() {ll n;cin>>n;for(int i = 1; i<=n; i++) cin>>a[i];ll ans = a[n],cnt=1,tmpcnt = 1;for(int i = n-1; i>=1; i--) {if(a[i] == a[i+1]) {tmpcnt++;}else tmpcnt = 1;if(tmpcnt >= cnt) ans = a[i],cnt = tmpcnt;}cout << ans <<endl;return 0 ;}?
總結
以上是生活随笔為你收集整理的【蓝桥杯官网试题 - 算法训练 】P0502(乱搞,tricks)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: B站成立13年了:首批2009年注册的B
- 下一篇: 【POJ - 1523】SPF(Tarj