169. 多数元素

题目:多数元素

给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。

示例1:

输入: [3,2,3]
输出: 3

示例2:

输入: [2,2,1,1,1,2,2]
输出: 2

思路一,使用map

  1. 用一个map记录下出现的数字的次数
  2. 出现次数最多的就是多数元素

实现

func majorityElement(nums []int) int {
    var (
        count         = map[int]int{}
        majority, cnt int
        l             = len(nums)
    )

    for _, num := range nums {
        if count[num]++; count[num] > cnt {
            majority = num
            cnt = count[num]

            // 如果已经是多数了 提前跳出
            if count[num] > l/2 {
                break
            }
        }
    }

    return majority
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假...
    做梦枯岛醒阅读 2,976评论 2 1
  • 题目描述: 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于⌊ n/2 ⌋的元素。...
    小刘一定要努力阅读 1,462评论 0 0
  • 题目 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 ...
    freesan44阅读 984评论 0 0
  • 今日体验:今天一宝马后改的主机显示屏坏了,与客户确定好了要改一套原厂的主机大屏,客户回家等待,明天到货安装,结果后...
    京心达阅读 421评论 0 0
  • 七狱·目录七狱·青面(1)七狱·青面(2)七狱·青面(3) 那是一个十五月圆的夜晚,月光照进竹林里的竹屋,一片皎洁...
    浅呓七阅读 3,459评论 0 1