一、问题来源 : LeetCode169. Majority Elements
二、解决问题 :寻找数组中的众数
三、算法介绍
1、传统方法:
包括但不仅限于暴力法(双重循环逐个数字判断是否为众数)、HashMap法(计数)、排序法(中位数一定为众数,因为即便从距离中点最远的两端起,众数依旧能够到达中位数的位置)、随机数法(随机找数组中一个数判断是否为众数)、分治法
2、多数投票算法(Boyer-Moore Algorithm)
【1】Java版
public int majorityElement(int[] nums) {
int count = 0;
Integer candidate = null;
for (int num : nums) {
if (count == 0) {
candidate = num;
}
count += (num == candidate) ? 1 : -1;
}
return candidate;
}
【2】Python版
def majorityElement(self, nums):
count = 0
ca