当前位置: 首页 > 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/328319.html

相关文章:

  • Dw怎么做网站往里面加标题和字视频号怎么推广流量
  • 在国外网站付款要怎么做教育培训机构管理系统
  • 视频链接生成器宁波抖音seo搜索优化软件
  • 扬州做企业网站哪家公司好万能搜索引擎入口
  • 厦门建设局公维金网站360官方网站网址
  • 做网站必须要有前台吗大数据营销精准营销
  • 电商网站建设包括哪些内容seosem是指什么意思
  • java做网站好还是asp好推广公司品牌
  • 图书馆网站建设总结windows优化大师官方免费下载
  • 照片做视频的软件 模板下载网站好怎么制作网站
  • lynda.com wordpress 3.5关键词优化排名软件s
  • 舟山网站设计公司成都官网seo厂家
  • 如何做网站报价专业网站优化排名
  • 专做logo网站叫什么地方统计站老站长推荐草莓
  • cgi做网站谷歌浏览器入口
  • 象山专业网站建设如何制作网页设计
  • 一台服务器做两个网站长尾关键词挖掘
  • 销售网站模板免费下载百度竞价网站
  • 分析学生做网站什么软件引流客源最快
  • 刷网站排名怎么刷宣传软文范例
  • 网站正在建设中域名网
  • 服装 东莞网站建设网络营销推广的基本手段
  • 自己做网站可以赚钱么人力资源和社会保障部
  • 公司做网站的流程惠州seo
  • 政府网站互动回应板块建设百度网站提交了多久收录
  • 动态速写网站谷歌浏览器官网下载
  • 唐山营销型网站制作正能量网站地址链接免费
  • 美国做ppt的网站有哪些济南网站建设制作
  • p2p网站审批全媒体运营师报考官网在哪里
  • web网站双语切换怎么做近期网络营销的热点事件