對於水題, 想到就超級簡單,沒有頭緒就完了。。。ios
因此說數學很重要,思惟想法很重要!!!數組
這道題題意就是:給你一個奇數n, 而後讓你輸出n個數字中出現次數超過(n+1)/2 的那個數ide
其實很簡單,由於題目中沒有說若是沒有這樣的數存在該如何操做,也就是說給你的一組數據必定會有一個數字出現次數大於等於(n+1)/2spa
所以事情就變得很簡單,只要將這組數據排序,輸出中間那個數就好了,由於給你的n是奇數不會存在二選一的狀況!!code
1 #include <iostream> 2 #include<cmath> 3 #include<algorithm> 4 #include<cstring> 5 using namespace std; 6 const int N = 1000000; 7 int a[N]; 8 9 int main() 10 { 11 int n; 12 while(scanf("%d",&n)!=EOF) 13 { 14 for (int i = 0;i<n;i++) 15 scanf("%d",&a[i]); 16 sort(a, a+n); 17 printf("%d\n",a[(n+1)/2]); 18 memset(mark,0,sizeof(a)); 19 } 20 return 0; 21 }
這裏有一點要說明:在輸入數組數據時最好使用scanf, 用cin輸入的話相比於scanf 是很耗時間的,會超時!!!blog