Skip to content

Commit 0793fc3

Browse files
committed
implement majority in js
1 parent eb2f0e0 commit 0793fc3

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// O(n) time, O(n) space
2+
var majorityElement = function(nums) {
3+
// O(n) 空间复杂度的解法
4+
const map = {}; // 存储元素出现的次数
5+
nums.forEach(ele => {
6+
if (!map[ele]) {
7+
map[ele] = 1;
8+
} else {
9+
map[ele] = map[ele] + 1;
10+
}
11+
});
12+
for (let key in map) {
13+
if (map[key] > nums.length / 2) { // 查找出现次数大于一半的元素
14+
return key;
15+
}
16+
}
17+
return null;
18+
};
19+
20+
// O(n) time, O(1) space

Array/03.MajorityElement/README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,13 @@
2222
输出: 2
2323
```
2424

25+
## 思路
26+
1. O(n) time and O(n) space
27+
28+
2. O(n) time and O(1) space
29+
使用 major 变量记录众数,count 记录遇到 major +1,非 major -1,最终 count 会大于0,major 即代表众数。
30+
2531
## 代码实现
2632
| C | C++ | Java | Python | JavaScript | PHP |
2733
| :--: | :--: | :--: | :--: | :---: | :---: |
28-
| 🤔 | 🤔 | 🤔 | 🤔 | 🤔 | 🤔 |
34+
| 🤔 | 🤔 | 🤔 | 🤔 | [😀](./MajorityElement) | 🤔 |

0 commit comments

Comments
 (0)