当前位置: 首页 > wzjs >正文

国内网站都要备案吗成都网站建设制作公司

国内网站都要备案吗,成都网站建设制作公司,做兼职比较正规的网站,如何做网页赚钱改进的投票法(Boyer-Moore Voting Algorithm)是一种非常高效的算法,用于在一个数组中找到出现次数超过一半的数字。它利用了“多数票”的性质,通过抵消的方式找到候选数字,并验证其是否满足条件。 改进的投票法&#x…

改进的投票法(Boyer-Moore Voting Algorithm)是一种非常高效的算法,用于在一个数组中找到出现次数超过一半的数字。它利用了“多数票”的性质,通过抵消的方式找到候选数字,并验证其是否满足条件。

改进的投票法(Boyer-Moore Voting Algorithm)

核心思想

  1. 多数票性质:如果一个数字出现次数超过数组长度的一半,那么在抵消其他数字后,这个数字仍然会剩余。
  2. 两轮操作
  • 第一轮投票:找到一个候选数字(可能的“多数票”)。
  • 第二轮验证:验证这个候选数字是否真的出现次数超过一半。

详细步骤

  1. 第一轮投票:
  • 初始化一个候选数字 candidate 和计数器 count。
  • 遍历数组:
    • 如果当前数字等于候选数字,计数器加1。
    • 如果不等于候选数字,计数器减1。
    • 如果计数器变为0,更换候选数字为当前数字,并重置计数器为1。
  • 第一轮结束后,candidate 是可能的“多数票”。
  1. 第二轮验证:
  • 遍历数组,统计候选数字的出现次数。
  • 如果出现次数超过数组长度的一半,返回该数字;否则返回0。
class Solution {
public:int MoreThanHalfNum_Solution(vector<int>& numbers) {if (numbers.empty()) {return 0;  // 如果数组为空,直接返回0}// 第一轮投票:找到候选数字int candidate = numbers[0];int count = 1;for (int i = 1; i < numbers.size(); ++i) {if (numbers[i] == candidate) {++count;  // 如果当前数字等于候选数字,计数器加1} else {--count;  // 如果不等于候选数字,计数器减1if (count == 0) {candidate = numbers[i];  // 更换候选数字count = 1;  // 重置计数器}}}// 第二轮验证:确认候选数字是否符合条件//在确认存在的情况下无需第二遍遍历count = 0;  // 重置计数器for (int num : numbers) {if (num == candidate) {++count;  // 统计候选数字的出现次数}}// 如果候选数字的出现次数超过数组长度的一半,返回该数字;否则返回0return (count > numbers.size() / 2) ? candidate : 0;//这里0表示未找到值}
};

代码解释

  1. 第一轮投票:
  • 初始化 candidate 和 count,假设第一个数字是候选数字。
  • 遍历数组:
    • 如果当前数字等于候选数字,说明它是一个“支持票”,计数器加1。
    • 如果当前数字不等于候选数字,说明它是一个“反对票”,计数器减1。
    • 如果计数器变为0,说明当前候选数字被“抵消”了,更换候选数字为当前数字,并重置计数器为1。
  1. 第二轮验证:
  • 第一轮投票结束后,candidate 是可能的“多数票”,但不一定满足条件。
  • 遍历数组,统计 candidate 的出现次数。
  • 如果出现次数超过数组长度的一半,返回 candidate;否则返回0。

为什么这种方法有效?

  1. 多数票性质:如果一个数字出现次数超过一半,那么在抵消过程中,它最终会剩余。
  2. 两轮操作:第一轮投票找到候选数字,第二轮验证确保结果的正确性。

时间复杂度和空间复杂度

时间复杂度:O(n)。两轮遍历数组,每轮都是线性时间。

空间复杂度:O(1)。只使用了常数级别的额外空间。

这种方法是解决“多数票问题”的最优解,既高效又简洁。

http://www.dtcms.com/wzjs/502036.html

相关文章:

  • 怎么做网站文字优化全球搜钻
  • 创网站永久免费建站爱站网关键词挖掘工具
  • 自定义wordpress评论列表班级优化大师免费下载
  • 杭州拱墅网站建设帮我搜一下长沙做网络销售
  • 香港免费永久网站小红书seo关键词优化多少钱
  • discuz做服务网站网站百度seo关键词优化
  • 域名先解析后做网站互联网项目
  • 做网站有什么市场风险seo软件系统
  • 怎样做公司的网站建设输入关键词就能写文章的软件
  • 宁波建设局网站首页发布新闻
  • 杭州九鸿科技网站开发营销方案范文
  • 嘉兴做网站优化哪家好在线观看的seo综合查询
  • 潍坊网站建设网超网站关键词优化代理
  • 微信端网站开发流程南宁优化网站收费
  • 企业名东莞整站优化推广公司找火速
  • 做网站.cn好还是.com好谷歌应用商店下载
  • 济南建公司网站北京朝阳区优化
  • 中英文网站建设需要懂英语吗搜狗竞价推广效果怎么样
  • wordpress qq 微信登录重庆电子商务网站seo
  • 网站首页布局自适应广东网站关键词排名
  • 手机自助网站建设网络推广app是干什么的
  • 一起做业英语网站关键词规划师工具
  • 什么值得买 网站开发网站推广搜索
  • 电子商务网站建设与运营百度图片搜索引擎入口
  • 用flash做的网站欣赏全网热搜榜第一名
  • 长沙房产交易中心官网青岛seo网络推广
  • 漯河网站建设公司临沂seo推广
  • 哪些网站是响应式的澳门seo推广
  • 中山网站建设是什么今日最新新闻
  • 织梦dede做网站的优点百度旗下产品