题号:169. 多数元素
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例 1:
输入: [3,2,3] 输出: 3
思路一:暴力破解法
即枚举数组中的每个元素,再遍历一遍数组统计其出现次数存入map。
思路二:排序法
如果将数组 nums 中的所有元素按照单调递增或单调递减的顺序排序,那么下标为 n/2的元素(下标从 0 开始)一定是众数。
func majorityElement(nums []int) int {
//map[num:count]
mapV := make(map[int]int)
for i := 0; i < len(nums); i++ {
//先判断是否存在这个key(num)
_, ok := mapV[nums[i]]
//存在即value+1
if ok {
mapV[nums[i]] += 1
continue
}
//否则新增一个
mapV[nums[i]] = 1
}
var max = 0
var returnV int
for k, v := range mapV {
//根据value 找出最大的key
if v > max {
max = v
returnV = k
}
}
return returnV
}
func majorityElement(nums []int) int {
sort.Ints(nums)
return nums[len(nums)/2]
}
❤如果文章对您有所帮助,就在文章的右上角或者文章的末尾点个赞吧!(づ ̄ 3 ̄)づ
❤如果喜欢大白兔分享的文章,就给大白兔点个关注吧!(๑′ᴗ‵๑)づ╭❤~
❤对文章有任何问题欢迎小伙伴们下方留言或者入群探讨【群号:708072830】
❤鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复讨论(请勿发表攻击言论)。