/*
出現次數超過一半的數
? ? 數組中有一個數出現的次數超過了數組長度的一半,找出這個數。
*/
/*
思路:
? ? 定義兩個變量,一個用來保存數組中遍歷的某個數,另一個用來表示
數組中當前數出現的次數,其中當前數出現的次數初始化為1,當遍歷
到數組中下一個數的時候:如果下一個數與保存數組中遍歷的某個數
相同時,則當前數出現的次數加1,否則減1。每當當前數出現的次數變
為0時,用來保存數組中的遍歷的某個數就要保存下一個數,并把當前
出現的次數重新設置為1,直到遍歷完整個數組為止。
*/
#include<iostream>
using namespace std;
int main()
{
int array[100],n,i,ntimes=1,candidate;
cin>>n;
for(i=0;i<n;i++)
cin>>array[i];
candidate=array[0];
for(i=1;i<n;i++)
{
if(ntimes==0)
{
candidate=array[i];
ntimes=1;
}
else
{
if(candidate==array[i])
ntimes++;
else
ntimes--;
}
}
cout<<candidate<<endl;
return 0;
}?