zoukankan      html  css  js  c++  java
  • bzoj2456: mode

    2456: mode

    Description

    给你一个n个数的数列,其中某个数出现了超过n div 2次即众数,请你找出那个数。

    Input

    第1行一个正整数n。
    第2行n个正整数用空格隔开。

    Output

        一行一个正整数表示那个众数。

    Sample Input

    5
    3 2 3 1 3

    Sample Output

    3

    HINT

    100%的数据,n<=500000,数列中每个数<=maxlongint。


    题解:
      这题其实很水,O(n)过...看代码理解吧
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<cmath>
    #include<algorithm>
    #define qread(x)x=read();
    using namespace std;
    inline int read()
    {
        int f=1,x=0;char ch;
        while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return f*x;
    }
    int n,s,c;
    int main()
    {
        qread(n);c=0;
        while(n--)
        {
            int a;
            qread(a);
            if(s==a)c++;
            else
            {
                c--;
                if(c<=0)c=1,s=a;
            }
        }
        printf("%d
    ",s);
        return 0;
    }
  • 相关阅读:
    IDLHDF5读取与转换
    IDL计算儒略日
    DOMContentLoaded和Window: load event
    eventloop(事件循环机制)
    @types
    ES6 Module import & export
    switch case
    python基础
    react-hooks 官方文档笔记
    base64编码图片
  • 原文地址:https://www.cnblogs.com/CHerish_OI/p/7899036.html
Copyright © 2011-2022 走看看