c++中摩尔投票法如何使用
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇"c++中摩尔投票法如何使用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"c++
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
互联网时代科技中介
vue怎么请求服务器数据
贵州创未教育软件开发有限公司
本地如何管理svn服务器
免费永久frp服务器
网络安全和云计算公司
网络技术公司社会实践
建设网络安全通报机制
有数据库电脑如何防攻击
阿里云搭建v2ray服务器
二维码 服务器 管理
中国isc网络安全大会
大学计算机网络技术考试题
深圳赛盈网络技术有限公司
数据库登录密码可以查看吗
php远程管理多台服务器
软件开发案件
厦门湖里小程序软件开发
知网如何找中文数据库
联通网络安全模式
广州树育互联网科技有限公司
苏州蓝水软件开发客户好做吗
淄川加工管理软件开发公司
太原市公安局网络安全宣传周
程序员植入数据库
插入数据库没有打印怎么办
电影订票软件开发
hadoop读取关系型数据库
国防网络安全
品牌服务器 组装服务器