WOJ1204-继续找相同

有 n 个整数, 其中有且仅有一个整数出现了 >= n/2.0 次 (n<=500000)

输入格式

每组数据第一行是 n, 然后接下来一行是 n 个整数, 请读入到 EOF

输出格式

输出每行一个整数, 即要找的这个数

样例输入

9
5 5 5 5 5 1 2 3 4

样例输出

5


#include<stdio.h>
#include<stdlib.h>
int num[500005];
int main(){  
    int n,i,j,t,ans,num1,num2;
    while(scanf("%d",&n) != EOF){
        j=0;
        for(i=0;i<n;i++){  
            scanf("%d",&num[i]);  
            if(j==0){  
                j++;
                ans=num[i];
            }
            else if(ans==num[i]) j++;
            else j--;
        }
        if(j>0)
            printf("%d\n",ans);
        else{
            t=num[n-1];
            num1=0;num2=0;
            for(i=0;i<n;i++){
                if(num[i]==ans)
                    num1++;
                else if(num[i]==t)
                    num2++;
            }
            if(num1>num2)
                printf("%d\n",ans);
            else
                printf("%d\n",t);
        }
    }
    return 0;
}


全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 11:22
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务