多数元素
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)];
}
}