首页 > 其他分享 >投票法

投票法

时间:2023-10-08 16:37:24浏览次数:23  
标签:cnt 投给 元素 选票 投票 众数

摩尔投票是一种用来解决绝对众数问题的算法。

在一个集合中,如果一个元素的出现次数比其他所有元素的出现次数之和还多,那么就称它为这个集合的绝对众数。等价地说,绝对众数的出现次数大于总元素数的一半。

摩尔投票的过程非常简单,让我们把找到绝对众数的过程想象成一次选举。我们维护一个m ,表示当前的候选人,然后维护一个cnt 。对于每一张新的选票,如果它投给了当前的候选人,就把cnt 加1,否则就把cnt 减1(也许你可以想象成,B的一个狂热支持者去把A的一个支持者揍了一顿,然后两个人都没法投票)。特别地,计票时如果cnt=0 ,我们可以认为目前谁都没有优势,所以新的选票投给谁,谁就成为新的候选人。
例如,5张选票分别投给1,3,3,2,3,则:
image

思路总结:让元素互相抵消,留下最后一个元素,其出现频率一定大于n/2

标签:cnt,投给,元素,选票,投票,众数
From: https://www.cnblogs.com/adamaik/p/17749508.html

相关文章

  • 9.HTML开发--在线投票:创建一个在线投票应用,允许用户投票给不同的选项。
    创建一个在线投票应用是一个有趣的项目,它可以让用户轻松地投票给不同的选项。以下是一个简单的HTML和CSS模板,你可以基于它创建你自己的在线投票应用:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-wid......
  • 使用 WebSockets、React 和 TypeScript 构建实时投票应用程序
    长话短说WebSocket允许您的应用程序具有“实时”功能,其中更新是即时的,因为它们是在开放的双向通道上传递的。这与CRUD应用程序不同,CRUD应用程序通常使用HTTP请求,必须建立连接、发送请求、接收响应,然后关闭连接。要在React应用程序中使用WebSockets,您需要一个专用服务器,例......
  • LeetCode 周赛上分之旅 #33 摩尔投票派上用场
    ⭐️本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]和[BaguTreePro]知识星球提问。学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场LeetCode周赛的解题报告......
  • 我的投票计划
    《我的投票计划》     https://tieba.baidu.com/p/8505205758      @卡西地   ,  我看到了你发的 25楼,   现在没了, 截图在下面 。 我现在回复你,  多艾特几次会给百度服务器造成过大的负担吗 ?   吧务还要操心这个 ? ......
  • Zookeeper投票机制
    每个sever首先给自己投票,然后用自己的选票和其他sever选票对比,权重大的胜出,使用权重较大的更新自身选票箱。具体选举过程如下:1.每个Server启动以后都询问其它的Server它要投票给谁。对于其他server的询问,server每次根据自己的状态都回复自己推荐的leader的id和上......
  • R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分
    全文链接:https://tecdat.cn/?p=32998原文出处:拓端数据部落公众号本文首先介绍了IMDb(互联网电影资料库) TOP250及其排名算法、评分机制利弊,帮助客户通过分析《黑暗骑士》、《肖申克的救赎》和《教父》三部影片在2008年7月至9月评分数据,分析排名变动的原因。其次,通过抓取曾经入选......
  • 【LeetCode摩尔投票】有趣的简单题:数组中出现次数超过一半的数字
    数组中出现次数超过一半的数字https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入:[1,2,3,......
  • 投票评选活动小程序获取活动信息并计算距离活动结束天数
    投票评选活动小程序获取活动信息并计算距离活动结束天数投票评选活动小程序首页的设计方案:首页展示已经发布的投票列表,每个投票项包括标题、选项、投票截止时间等信息。投票评选活动小程序获取活动信息监听页面初次渲染完成时,获取活动信息,主要包含投票评选活动的浏览量、累计投票、......
  • 投票评选活动小程序连接云数据库,读取评选人物列表
    投票评选活动小程序连接云数据库,读取评选人物列表1、首先在云开发控制台的数据库,创建voteWorks集合;2、在voteWorks数据集合,设计表的数据结构;3、配置好数据访问权限;4、在小程序端连接云数据库,读取评选人物列表;关键代码如下://连接云数据库constdb=wx.cloud.database();//获取......
  • 投票活动小程序开发搭建
    由于小程序是基于微信开发者工具编写的,因此我先介绍一下需要使用的工具和技术:-微信开发者工具:用于开发、调试和发布小程序。-小程序云开发:用于存储数据和进行后端逻辑处理。-uni-app框架:uni-app是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Androi......