寻找数组中出现次数超过一半的数字

Posted soyosuyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寻找数组中出现次数超过一半的数字相关的知识,希望对你有一定的参考价值。

/*
 * 数组中出现次数超过一半的数字.cpp
 *
 *  Created on: 2018年4月20日
 *      Author: soyo
 */
#include<iostream>
using namespace std;
int MoreNum(int *p,int length)
{
    if(p==NULL)
        return NULL;
    int result=p[0];
    int time=1;
    for(int i=1;i<length;i++)
    {
        if(time==0)
        {
            result=p[i];
            time=1;
        }
        else if(p[i]==result)
             time++;
        else
            time--;
    }
    return result;
}

int main()
{
    int a[]={1,5,3,5,8,5,5,5,7,5,8};
    int num;
    num=MoreNum(a,9);
    cout<<"数组中出现次数超过一半的数字为:"<<num<<endl;
    int b[]={8,7,3,54};
    int *p;
    p=b;
    cout<<p[3]<<endl;

}

结果:

数组中出现次数超过一半的数字为:5
54

 

以上是关于寻找数组中出现次数超过一半的数字的主要内容,如果未能解决你的问题,请参考以下文章

数组中出现次数超过一半的数字

编程算法 - 数组中出现次数超过一半的数字 代码(C)

数组中出现次数超过一半的数字

Java 剑指offer(39) 数组中出现次数超过一半的数字

剑指 Offer 39. 数组中出现次数超过一半的数字 的 详细题解

数组中出现次数超过一半的数字(C语言+Java)