概述
目的是在一个给定的数组中找到多数元素。多数元素是指在一个给定的数组中出现超过n/2次的元素, n是数组的长度.
例子1
Input: [2, 1, 2, 2, 3]
Output: 2
例子2
Input: [1]
Output: 1
程序
以下是相同的程序
package main
import "fmt"
func majorityElement(nums []int) int {
lenNums := len(nums)
if lenNums == 1 {
return nums[0]
}
numsMap := make(map[int]int)
for i := 0; i < lenNums; i++ {
_, ok := numsMap[nums[i]]
if ok {
numsMap[nums[i]] = numsMap[nums[i]] + 1
if numsMap[nums[i]] > lenNums/2 {
return nums[i]
}
} else {
numsMap[nums[i]] = 1
}
}
return 0
}
func main() {
output := majorityElement([]int{2, 1, 2, 2, 3})
fmt.Println(output)
output = majorityElement([]int{1})
fmt.Println(output)
}
输出。
2
1