8000 majority_element_II · hitzzc/go-leetcode@c83db74 · GitHub
[go: up one dir, main page]

Skip to content

Commit c83db74

Browse files
committed
majority_element_II
1 parent 103e107 commit c83db74

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ Golang solution for leetcode. For each problem, there is a simple *_test.go to t
185185
#### [226. Invert Binary Tree](https://github.com/hitzzc/go-leetcode/tree/master/invert_binary_tree)
186186
#### [227. Basic Calculator II](https://github.com/hitzzc/go-leetcode/tree/master/basic_calculator_II)
187187
#### [228. Summary Ranges](https://github.com/hitzzc/go-leetcode/tree/master/summary_ranges)
188+
#### [229. Majority Element II](https://github.com/hitzzc/go-leetcode/tree/master/majority_element_II)
188189

189190

190191

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package majority_element_II
2+
3+
func majorityElement(nums []int) []int {
4+
var m, n, cm, cn int
5+
for i := range nums {
6+
if nums[i] == m {
7+
cm++
8+
} else if nums[i] == n {
9+
cn++
10+
} else if cm == 0 {
11+
m = nums[i]
12+
cm++
13+
} else if cn == 0 {
14+
n = nums[i]
15+
cn++
16+
} else {
17+
cm--
18+
cn--
19+
}
20+
}
21+
cm, cn = 0, 0
22+
for i := range nums {
23+
if nums[i] == m {
24+
cm++
25+
} else if nums[i] == n {
26+
cn++
27+
}
28+
}
29+
var ret []int
30+
if cm > len(nums)/3 {
31+
ret = append(ret, m)
32+
}
33+
if cn > len(nums)/3 {
34+
ret = append(ret, n)
35+
}
36+
return ret
37+
}

0 commit comments

Comments
 (0)
0