微信红包(数组中出现次数大于一半的数)

来源:互联网 发布:深圳阿里云大厦图片 编辑:程序博客网 时间:2024/06/05 04:25
class Gift{public:    int getValue1(vector<int> gifts, int n)    {        if(n==0)return 0;        int v=gifts[0];        int num=0;        for(int i=0; i<gifts.size(); i++)        {            if(gifts[i]!=v)num--;            else num++;            if(num==0) v=gifts[i],num=0;        }        num=0;        for(int i=0; i<gifts.size(); i++)        {            if(v==gifts[i])num++;        }        if(num>gifts.size()/2)return v;        else return 0;    }    int getValue(vector<int> gifts, int n)    {        map<int,int>m;        for(int i=0; i<n; i++)            if(++m[gifts[i]]>n/2)return gifts[i];        return 0;    }};

阅读全文
0 0
原创粉丝点击