Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.
You may assume that the array is non-empty and the majority element always exist in the array.
Example 1:
Input: [3,2,3] Output: 3
Example 2:
Input: [2,2,1,1,1,2,2] Output: 2
-----------------------------------------------------------------------------
以前想过sort后做,但是复杂度是O(nlogn)。也想过两两抵消来做,但是两两抵消代码怎么写呢???用一种vote的思路
class Solution:
def majorityElement(self, nums: List[int]) -> int:
candidate,vote = nums[0],0
for num in nums:
if (vote == 0):
candidate = num
vote = vote + 1 if num == candidate else vote-1
return candidate
寻找多数元素的投票算法

本文介绍了一种高效查找数组中多数元素的算法——投票算法。该算法通过模仿投票过程,仅需一次遍历即可找到出现次数超过n/2的元素,避免了排序或两两抵消等高复杂度的方法。代码示例清晰展示了算法实现。

2728

被折叠的 条评论
为什么被折叠?



