c++中摩尔投票法如何使用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇"c++中摩尔投票法如何使用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"c++
千家信息网最后更新 2026年11月01日c++中摩尔投票法如何使用
这篇"c++中摩尔投票法如何使用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"c++中摩尔投票法如何使用"文章吧。
算法:
典型的摩尔投票法使用场景
摩尔投票法分为两个阶段:抵消阶段和计数阶段。
1. 抵消阶段:两个不同投票进行对坑,并且同时抵消掉各一张票,如果两个投票相同,则累加可抵消的次数;2. 计数阶段:在抵消阶段最后得到的抵消计数只要不为0,那这个候选人是有可能超过一半的票数的, 为了验证,则需要遍历一次,统计票数,才可确定。 备注:对于1/3,1/4.....1/n,做法就是设置n-1个投票候选人,采用摩尔投票的方法进行操作。
题目1: 超过半数的多数元素
代码实现:
func majorityElement(nums []int) int { tmp,count := 0,0 for _,num:=range nums { if count == 0 { tmp = num } if num == tmp { count++ } else { count-- } } return tmp}// 算法:数组里面有一个数超过一半数量,// 那么可以用这个数作为标示,这个数就+1,不是这个数就-1,最后剩余的数就是所求题目2: 求众数
代码实现:
func majorityElement(nums []int) []int {// 创建返回值var res = make([]int, 0)if nums == nil || len(nums) == 0 {return res}// 初始化两个候选人 candidate,以及他们的计数票cand1 := nums[0]count1 := 0cand2 := nums[0]count2 := 0//摩尔投票法// 配对阶段for _, num := range nums {// 投票if cand1 == num {count1++continue}if cand2 == num {count2++continue}if count1 == 0 {cand1 = numcount1++continue}if count2 == 0 {cand2 = numcount2++continue}count1--count2--}// 计数阶段count1 = 0count2 = 0for _, num := range nums {if cand1 == num {count1++} else if cand2 == num {count2++}}if count1 > len(nums)/3 {res = append(res, cand1)}if count2 > len(nums)/3 {res = append(res, cand2)}return res}// 算法:摩尔投票法的应用// 因为是1/3,所以采用2个候选人来进行抉择。
以上就是关于"c++中摩尔投票法如何使用"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
投票
摩尔
阶段
内容
两个
候选人
c++
就是
算法
代码
文章
知识
票数
篇文章
题目
不同
相同
个数
价值
做法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网新科技
新华互联网科技
科技和互联网公司
互联网科技有限公司经营范围
互联网下的科技发展
互联网未来科技
互联网科技缩写
科技互联网公司logo
互联网科技大奖都有哪些公司
互联网科技和信息
健康食品互联网创新科技园项目
广州新华互联网科技学校电竞方面
锡山区互联网智能科技产品供应
小米互联网科技园入驻
互联网科技机房
互联网科技手抄报图片
互联网对科技影响
瑞安市蟠桃会互联网科技有限公司
利用互联网等科技手段
科技发展第三阶段互联网时代
北京路客互联网科技有限公司
互联网为科技
互联网科技论文
江苏南京365互联网科技
深圳前海聚择互联网科技有限公司
互联网科技实习生岗位职责
电子商务与互联网科技的关系
上海乐五互联网科技有限公司
上海万顺科技互联网有限公司招聘
颐高云石互联网科技