题目描述
查找一个数组中出现最多次数的值,如果存在相同的数量则输出较大的值。
解题思路
数据结构:哈希表
过程描述:在遍历数组过程中
1)使用map记录每个值出现的次数
2)使用maxCount,maxNum分别记录当前的最大次数和最大数值,有以下两种情况:
①当前元素出现次数 > maxCount : 更新maxCount为当前次数 & maxNum为当前元素
②当前元素出现次数 == maxCount && 当前元素 > maxNum: 更新maxNum为当前元素
遍历完成后,输出maxNum。
代码实现
func Top1OfNums(nums []int) int {
countMap := make(map[int]int)
maxCount, maxNum := 0, -1<<31
for _, num := range nums {
countMap[num]++
if countMap[num] > maxCount {
maxCount = countMap[num]
maxNum = num
} else if countMap[num] == maxCount && num > maxNum {
maxNum = num
}
}
return maxNum
}