39剑指OFFER之数组中数字超过1半的数字

参考资料:

常规

关键词:
自己的答案:
int FindNumExceedHalf(int a[], int nLen)
{
    if (a == nullptr)
        return -1;
    
    sort(a,a+nLen);
    int nTarget = a[nLen / 2];
    int nCount = 0;
    for (int i = 0; i < nLen; i++)
    {
        if (a[i] == nTarget)
            nCount++;
    }
    if (nCount > nLen / 2)
        return nTarget;
    else
        return -1;
    
}

你可能感兴趣的:(39剑指OFFER之数组中数字超过1半的数字)