如何理解摩尔投票法(力扣的求众数),看了还不会的来砍我

本文通过摩尔投票法解释力扣中的求众数问题,借助士兵与国家的比喻帮助理解。文章提供解题思路,通过模拟战斗过程展示算法逻辑,强调在所有国家中士兵超过一半的情况下,该国必然获胜。
摘要由CSDN通过智能技术生成

力扣的求众数
可以先看看解题榜第一名做出的摩尔投票法的动图,先存在脑海里

2.看下这里理解:

在这里插入图片描述

3.还看不懂?没关系,我来结合这两者进行补充:

在这里插入图片描述
比如这个测试用例:
将1,2,3,5,4想象成5个国家的士兵
约定:
1.每个国家的士兵不能内战
2.每个国家的士兵都可以攻击不同国家的士兵
3.每次攻击都是双方同归于尽的
4.最终在战场上活下来的士兵归属的国家算胜利
**

那么假如有一个国家的士兵超过了参战人数的一半,请问哪个国家胜利?

**
那么显而易见,假如所有不同国家的士兵都去攻击这个大国的士兵(测试用例中是2号国),那么也是这个大国胜利.

现在再去回想一下那个动图:
相当于将是每次选中一个士兵去攻击另一个国家的士兵,遇到了不同的就杀死(同归),遇到了本国的就组队.直到这个小队伍全部战死,就再换个士兵操控.最终能够活下来的肯定是大国的小组.

因为最坏的情况中(所有士兵攻击大国士兵),大国都能胜出,现在混战,大国士兵肯定胜出

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值