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;
}


全部评论

相关推荐

05-23 20:31
已编辑
武汉大学 Java
内向的柠檬精在研究求...:注意把武大标粗标大 本地你俩不是乱杀
实习进度记录
点赞 评论 收藏
分享
06-10 23:36
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
我是没经验的毕业生,这啥情况啊会不会是hr在刷kpi
JamesGosli...:字节boss属于是群发了,我都快入职字节了,其他部门还在和我boss打招呼
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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