HDU - 1029 Ignatius and the Princess IV题解

题目大意

找到出现次数达到 ( n + 1 ) / 2 (n+1)/2 (n+1)/2次的数,且保证有解, n n n为奇数

详细思路

因为 n n n为奇数,所以能出现次数达到 ( n + 1 ) / 2 (n+1)/2 (n+1)/2次的数只有一个

可以通过把两个不同数消掉,最后剩下的若干个相同的数就是题目所需结果

具体实现

#include
int n,x,y,z;
int main(){
    while(scanf("%d",&n)!=EOF){
        y=0;
        for(int i=1;i<=n;i++){
            scanf("%d",&z);
            if(y==0){x=z;y=1;}
            else if(x==z)y++;
            else y--;
        }
        printf("%d\n",x);
    }
}

你可能感兴趣的:(题解,HDU,算法)