File tree Expand file tree Collapse file tree 2 files changed +27
-1
lines changed Expand file tree Collapse file tree 2 files changed +27
-1
lines changed Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change 22
22
输出: 2
23
23
```
24
24
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
+
25
31
## 代码实现
26
32
| C | C++ | Java | Python | JavaScript | PHP |
27
33
| :--: | :--: | :--: | :--: | :---: | :---: |
28
- | 🤔 | 🤔 | 🤔 | 🤔 | 🤔 | 🤔 |
34
+ | 🤔 | 🤔 | 🤔 | 🤔 | [ 😀 ] ( ./MajorityElement ) | 🤔 |
You can’t perform that action at this time.
0 commit comments