给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
package main
import "fmt"
// 既然要找多余一半的,那么就通过记录数量来找最多的
// 既然答案是多数,那么用少数去抵消多数的票一定剩的还是多数,于是得到多数的答案
func majorityElement(nums []int) (ans int) {
cnts := 0
for _, v := range nums {
if v == ans {
cnts++
} else if cnts == 0 {
ans = v
} else {
cnts--
}
}
return
}
func main() {
nums := []int{3, 2, 3}
//nums := []int{2, 2, 1, 1, 1, 2, 2}
ans := majorityElement(nums)
fmt.Println(ans)
}