1. 程式人生 > >算法訓練 出現次數最多的整數

算法訓練 出現次數最多的整數

i++ 比較 () 格式 個數 style std algo 輸出格式

問題描述
  編寫一個程序,讀入一組整數,這組整數是按照從小到大的順序排列的,它們的個數N也是由用戶輸入的,最多不會超過20。然後程序將對這個數組進行統計,把出現次數最多的那個數組元素值打印出來。如果有兩個元素值出現的次數相同,即並列第一,那麽只打印比較小的那個值。
  輸入格式:第一行是一個整數NN? £? 20;接下來有N行,每一行表示一個整數,並且按照從小到大的順序排列。
  輸出格式:輸出只有一行,即出現次數最多的那個元素值。
輸入輸出樣例 樣例輸入 5
100
150
150
200
250 樣例輸出 150 有點坑需要特判一下n<=0 return
 1 #include <iostream>
 2
#include <algorithm> 3 using namespace std; 4 int n; 5 int a[100]; 6 int dp[1000005]; 7 int main() 8 { 9 while(cin>>n){ 10 if(n<=0) return 0; 11 for(int i=0;i<n;i++){ 12 cin>>a[i]; 13 } 14 sort(a,a+n); 15 int
t=1,maxn=1,maxi=0; 16 for(int i=1;i<n;i++){ 17 if(a[i]==a[i-1]){ 18 t++; 19 if(t>maxn){ 20 maxn=t; 21 maxi=i; 22 } 23 }else{ 24 t=1; 25 }
26 } 27 cout<<a[maxi]<<endl; 28 } 29 return 0; 30 }

算法訓練 出現次數最多的整數