美文网首页
数组--绝对众数

数组--绝对众数

作者: Albert_Sun | 来源:发表于2017-07-18 22:00 被阅读84次

定义:给定N个数,出现次数最多的数为众数,若某众数出现次数大于N/2,则称其为绝对众数

已知给定N个整数存在绝对众数,以最低的时空复杂度计算该绝对众数。O(N)

算法分析:删除数组A中两个不同的数,绝对众数不变!!!

  1. 若两个数中有一个是绝对众数,则剩余的N-2个数中,绝对众数仍然大于(N-2)/2
  2. 若两个数中没有绝对众数,显然不影响绝对众数
# !/usr/bin/env python
# -- coding: utf-8 --
# @Time : 2017/7/18 21:57
# @Author : Albert·Sun
# @Version : 0.10α-β
# @Description : 寻找绝对众数

def absult_Much(arr):
    times = 0
    much_n = arr[0]
    for i in range(len(arr)):
        if times == 0: # 暂以当前数为众数
            much_n = arr[i]
            times += 1
        elif arr[i] == much_n: # 次数加1
            times += 1
        else: # 次数减一,等价于删除一次众数和另一个数
            times -= 1
    return much_n


if __name__ == "__main__":
    arr = [2, 1, 1, 3, 2, 1, 2, 1, 1]
    print absult_Much(arr)

相关文章

  • 数组--绝对众数

    定义:给定N个数,出现次数最多的数为众数,若某众数出现次数大于N/2,则称其为绝对众数 已知给定N个整数存在绝对众...

  • LeetCode之求众数——JavaScript实现

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

  • [LeetCode]169,229-求众数

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

  • LeetCode 169. Majority Element

    问题描述 给定一个数组,长度为 n,找到众数。众数是指出现次数大于「n/2」的元素。 假定数组非空,且众数一定存在...

  • 2019-02-04 Day 30

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

  • 2020-03-13 刷题1 (数组)

    169 多数元素 标签:数组,众数一共n个元素,其中出现了大于n/2次的元素被称为众数,给定数组中一定存在众数,把...

  • Leetcode_169 Majority Element

    给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组...

  • 求众数

    给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组...

  • [LeetCode][Python]169. 求众数

    给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组...

  • 【LeeCode精选】169. 求众数

    给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组...

网友评论

      本文标题:数组--绝对众数

      本文链接:https://www.haomeiwen.com/subject/wovuhxtx.html