# 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n / 2 ⌋ 的元素。
# 你可以假设数组是非空的,并且给定的数组总是存在多数元素。
# 示例 1:
# 输入:nums = [3, 2, 3]
# 输出:3
# 示例 2:
# 输入:nums = [2, 2, 1, 1, 1, 2, 2]
# 输出:2
# 提示:
# n == nums.length
# 1 <= n <= 5 * 104
# -109 <= nums[i] <= 109
# 进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。
nums = [2, 2, 1, 1, 1, 2, 2]
a = 0
b = 0
for i in nums:
if b == 0:
a = i
if i == a:
b += 1
else:
b -= 1
print(a)
# i a b
# 1 : 2 2 1
# 2 : 2 2 2
# 3 : 1 2 1
# 4 : 1 2 0
# 5 : 1 1 1
# 6 : 2 1 0
# 7 : 2 2 1
摩尔投票法(python实现)
最新推荐文章于 2024-10-14 23:40:45 发布
本文描述了一个编程问题,要求在给定非空数组中找到出现次数超过数组长度一半的多数元素。提供了示例和进阶挑战,目标是设计一个时间复杂度为O(n)和空间复杂度为O(1)的算法。给出的代码片段展示了如何通过迭代找到多数元素。
摘要由CSDN通过智能技术生成