leeCode算法--多数元素问题

题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。

分析:看到这个题,其实我们就直接想到了,统计给定数组中元素出现次数的问题。所以照着这个方向做就OK!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
let majorityElement = (nums) => {
let obj = {}
let arr = []
nums.forEach(n => {
if (!obj.hasOwnProperty(n)) {
obj[n] = 1
} else {
obj[n]++
}
})
for (let key in obj) {
if (obj[key] > (nums.length)/2) {
arr.push(key)
}
}
return arr
}
majorityElement([3,2,3]) // 3
majorityElement([2,2,1,1,1,2,2]) // 2

其实,思路就是哈希表+排序方式,That’s all!

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2022 Lee
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信