zoukankan      html  css  js  c++  java
  • 今天了解了一下摩尔投票法

    今天了解了一下摩尔投票法

    原题是leetcode229

    • 注意题目中有个条件是 找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。
    • 这个条件给我们的提示就是,不到⌊ n/3 ⌋ 次的人,一视同仁。
    • 基于这样的约定,我们才可以设置两个固定坑位之后,遍历数组。
    • 也就是说,本来在坑位上的人,如果不足以达到n/3这样的条件,那就可以将他请下来。换言之,我们一直关注的都是当前已经在领奖台上的人,如果不在,只能说明他已经不符合n/3的要求,尽管他曾经票数很多。
    • 之后就按照一般的思想进行下去即可。

    为了便于理解,再想想n/4的情况

    • 这种情况下应该设置3个坑位,并且每次同时任选四个人进行一轮竞争。

    注意这种题目和一般的找众数的区别,就是在有限制条件,不然是无法实现O(n)的。

    Stay hungry
  • 相关阅读:
    Linux内存分析
    mysql 分表
    安装YCM
    c/c++ 之静态库
    ubuntu20 宽带连接
    数据对齐
    计算机中浮点数的表示
    整数的表示
    信息的储存
    SparseTable ST表
  • 原文地址:https://www.cnblogs.com/agnes6/p/13603367.html
Copyright © 2011-2022 走看看