Skip to content

Latest commit

 

History

History
36 lines (27 loc) · 832 Bytes

0169-多数元素.md

File metadata and controls

36 lines (27 loc) · 832 Bytes

给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。

 

示例 1:

输入:[3,2,3] 输出:3 示例 2:

输入:[2,2,1,1,1,2,2] 输出:2  

进阶:

尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。

var majorityElement = function(nums) {
  let count = 0
  let current
  for (let i = 0; i < nums.length; i++) {
    const item = nums[i]
    if (count === 0) {
      current = item
    }
    count += (current === item) ? 1 : -1
  }
  return current
};

解题思路: 看的题解,用的摩尔投票法,有点没理解。大致就是最后会被选出来的一定是最多出现次数的数