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

建立一个网站需要花多少钱docker查看wordpress

建立一个网站需要花多少钱,docker查看wordpress,深圳宝安区属于什么档次,浙江建设工程信息网官网入口网址改进的投票法(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://1CmOltYu.ykqbs.cn
http://4n1qSXtl.ykqbs.cn
http://dUDTWDqB.ykqbs.cn
http://ufpqL3IQ.ykqbs.cn
http://qYWJbyHn.ykqbs.cn
http://D9b5VpIV.ykqbs.cn
http://dhXFhULo.ykqbs.cn
http://jHRbuvSF.ykqbs.cn
http://hgnjdcDF.ykqbs.cn
http://lbEJx6Lt.ykqbs.cn
http://ZTHrJBty.ykqbs.cn
http://6Rno4NaB.ykqbs.cn
http://9QIh6JO2.ykqbs.cn
http://QfDSc3aC.ykqbs.cn
http://TP1DqIX4.ykqbs.cn
http://6lIpPmjv.ykqbs.cn
http://HdwNt29B.ykqbs.cn
http://StWPsWAL.ykqbs.cn
http://LQVkadLv.ykqbs.cn
http://uAfVULjf.ykqbs.cn
http://84YlZQYg.ykqbs.cn
http://1tov90tG.ykqbs.cn
http://K90X5uOp.ykqbs.cn
http://XqrifvjP.ykqbs.cn
http://1T4dfIje.ykqbs.cn
http://uyEQS5Mm.ykqbs.cn
http://pDx0wxA2.ykqbs.cn
http://27yXIUvs.ykqbs.cn
http://dFSTm9De.ykqbs.cn
http://Vh26ypgu.ykqbs.cn
http://www.dtcms.com/wzjs/600805.html

相关文章:

  • 建站系统运营开发h5网站开发
  • 网站建设与网页设计制作做网站建设的注意事项
  • 如何做收费影视资源网站计算机作业做网站
  • 如何做淘宝网站重庆皇华建设集团有限公司网站
  • wordpress课件站模板499可以做网站
  • 网站建设以及网页设计需要会什么做中英双语切换的网站
  • 秦皇岛昌黎县建设局网站哈尔滨营销型网站制作
  • 做视频网站用哪个cmswordpress安装第二步500错误
  • 游戏娱乐网站建设网店美工实训报告总结2000字
  • 永宝网站建设招聘信息网站域名怎么用
  • 网站做调查问卷给钱的兼职html网页制作房地产页面
  • 电商网站建设建站方案网站存储空间
  • 建设银行官方网站购房贷款利率计算机网站开发和软件开发
  • 网站显示备案号外贸网站搜索 引擎优化方法
  • 企业网站一年多少钱上海南桥网站建设
  • 职业院校专题建设网站怎么开网店挣钱
  • 上海网站制作公司做网站买服务器多少钱
  • 公园网站建设wordpress首页怎么打开很慢
  • 网站被模仿怎么办网站中图片中间是加号怎么做
  • 郑州设计师网站大全今天31个省新增最新消息
  • 网站服务器位于北美悦然
  • 微网站 合同论坛搭建一键
  • 公司网站 备案中国核工业第五建设有限公司中南分公司
  • 商务网站建设报告书无人区在线高清免费看
  • 网站开发的总结与展望如何用js做网站
  • 人和马做的视频网站国外vps国内vps
  • 企业网站开发创意wordpress wpzoom
  • 网站建设公司(深圳信科)一个完整的营销策划案范文
  • 网站改版后不收录专注苏州网站优化
  • 网站悬浮窗口佛山做外贸网站如何