1、题目
2、题解
想到的解法较为简单,首先还是想到哈希表,以每个数值为key,value中记录该数值出现的次数。首先遍历一遍数组,完成对每个key对应数量的统计。之后对哈希表进行遍历,确定出现次数最多的key,即value值最大的key,实现代码如下
func majorityElement(nums []int) int {
var dict map[int]int = make(map[int]int)
for _, v := range(nums){
if _, ok := dict[v]; ok {
dict[v]++
}else{
dict[v]=1
}
}
maxNum:=-1
maxValue:=0
for key, value:=range(dict){
if maxNum<value{
maxNum = value
maxValue = key
}
}
return maxValue
}
想要改进一下,尝试在遍历数组,填充哈希表的过程中记录获得出现次数的值,实现代码如下
func majorityElement(nums []int) int {
var dict map[int]int = make(map[int]int)
maxNum:=-1
maxValue:=0
for _, v := range(nums){
if _, ok := dict[v]; ok {
dict[v]++
}else{
dict[v]=1
}
if maxNum<dict[v]{
maxNum = dict[v]
maxValue = v
}
}
return maxValue
}