【算法系列学习】[kuangbin带你飞]专题十二 基础DP1 B - Ignatius and the Princess IV
http://www.cnblogs.com/joeylee97/p/6616039.html
引入一个cnt,输入元素与上一个元素相同,cnt增加,否则cnt减少,当cnt为零时记录输入元素,因为所求数字至少出现(N+1)/2次,所以最后记录元素就是所求元素
1 #include<iostream> 2 #include<cstdio> 3 #include<string> 4 #include<cstring> 5 #include<cmath> 6 #include<algorithm> 7 8 using namespace std; 9 const int maxn=1e6+10; 10 11 int n; 12 int main() 13 { 14 while(scanf("%d",&n)!=EOF) 15 { 16 int temp,cur,cnt=1; 17 scanf("%d",&temp); 18 for(int i=1;i<n;i++) 19 { 20 scanf("%d",&cur); 21 if(cur==temp) 22 { 23 cnt++; 24 } 25 else 26 { 27 cnt--; 28 } 29 if(cnt==0) 30 { 31 temp=cur; 32 cnt=1; 33 } 34 35 } 36 printf("%d\n",temp); 37 } 38 return 0; 39 }