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

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

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。

示例 1:

输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]
输出: 2

限制:

1 <= 数组长度 <= 50000

代码如下:

class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function majorityElement($nums) {
        $count = count($nums);
        if ($count) {
            $numsCount = array_count_values($nums);
            foreach ($numsCount as $key => $item) {
                if ($item >= ceil($count / 2) ) {
                    return $key;
                }
            }
        }
    }
}

本文链接:https://itarvin.com/detail-125.aspx

登录或者注册以便发表评论

登录

注册