目录

三个月算法进阶--day37

python max key

a = {1: 2, 2: 1}
max(a.keys(), key=lambda x: a[x])
max(a.keys(), key=a.get)
max(a, key=a.get)

a = [1, -2]
max(a, key=abs)

python sum

a = [1, -2]
sum(i for i in a)

随机找答案并验证

期望的时间复杂度

额外的数组空间与栈空间

经典分治法

摩尔投票法

leetcode第169题多数元素

候选人票数多当选众数

class Solution:
    def majorityElement(self, nums):
        count = 0
        candidate = None

        for num in nums:
            if count == 0:
                candidate = num
            count += (1 if num == candidate else -1)

        return candidate

对抗阶段:出现最多的n个数

计数阶段:验证是否超过一定数量以及是否相同

适用问题:至多选出m个代表,每个选票数大于n / (m + 1)