DSA 部分简单

博耶摩尔投票

“博耶摩尔投票”问题的详细指南和 Python 实现。

问题陈述

简单

编写一个函数 boyer_moore_majority(arr) 来实现 Boyer-Moore 多数投票算法,以在整数列表 arr 中查找多数元素(出现超过 n // 2 次的元素)。如果不存在多数元素,则返回 -1

约束条件
  • 1 <= len(arr) <= 5 * 10^4
  • -10^9 <= arr[i] <= 10^9

示例

Example 1
Input
arr = [1, 1, 1, 2, 2]
Output
1
Explanation

1 appears 3 times which is greater than 5 // 2 = 2 times.

Example 2
Input
arr = [1, 2, 3]
Output
-1
Explanation

No element appears more than 3 // 2 = 1 time.

Need a Hint?
考虑使用特定于数组的数据结构,例如集合或堆。
Edge Cases to Watch
  • 空输入结构
  • 单元素输入
  • 大数值范围

准备好解决了吗?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

在编辑器中打开
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

推荐的 Python 资源

通过相关的交互式教程、备忘单和代码比较来扩展您的知识。