多数元素-leetcode

多数元素

1. 地址

https://leetcode-cn.com/problems/majority-element/

2. 思路

解法一:

  • 计算每个元素出现的次数
  • 根据出现次数排序
  • 取第一个 key
class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function majorityElement($nums) {
        $times = array_count_values($nums);
        arsort($times);
        // print_r($times);
        return key($times);
    }
}

解法二:
根据题干,可以看到:
多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。

给定的数组总是存在多数元素。
那么把数组排序之后,那么第 n/2 个元素一定是众数

class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function majorityElement($nums) {
        sort($nums);
        return $nums[floor(count($nums)/2)];
    }
}
原文地址:https://www.cnblogs.com/wudanyang/p/13060668.html