hdu1029

對於水題, 想到就超級簡單,沒有頭緒就完了。。。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 }
View Code

這裏有一點要說明:在輸入數組數據時最好使用scanf, 用cin輸入的話相比於scanf 是很耗時間的,會超時!!!blog

相關文章
相關標籤/搜索