1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| // @Title: 求众数 II (Majority Element II)
// @Author: 15816537946@163.com
// @Date: 2021-10-22 11:16:51
// @Runtime: 12 ms
// @Memory: 4.9 MB
func majorityElement(nums []int) []int {
sort.Ints(nums) // 从小到大排序
cursor := len(nums) / 3
var counter = 1
ret := make([]int, 0)
for i := 0; i < len(nums)-1; i++ {
if nums[i] != nums[i+1] {
if counter > cursor {
ret = append(ret, nums[i])
}
counter = 1
} else {
counter++
}
}
// check the last one
if counter > cursor {
ret = append(ret, nums[len(nums)-1])
}
return ret
}
|