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

怎样提高网站流量百度快照在哪里

怎样提高网站流量,百度快照在哪里,深圳网站建设是什么,梅河口信息网数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 假设数组非空,并且一定存在满足条件的数字。 思考题: 假设要求只能使用 O(n) 的时间和额外 O(1) 的空间,该怎么做呢&#xff1f…

数组中出现次数超过一半的数字


数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。

假设数组非空,并且一定存在满足条件的数字。

思考题

  • 假设要求只能使用 O(n) 的时间和额外 O(1) 的空间,该怎么做呢?
数据范围

数组长度 [ 1 , 1000 ] [1,1000] [1,1000]

样例
输入:[1,2,1,1,3]输出:1
**算法思路 **

** 摩尔投票算法(Moore Voting Algorithm)  **

  1. 初始化:维护一个候选值 val 和计数器 cnt,初始时 val 为任意值(如 -1),cnt 为 0。
  2. 遍历数组
    • 如果 cnt 为 0,则将当前数字 x 设为候选值 val,并设置 cnt = 1
    • 如果当前数字 x 等于候选值 val,则 cnt 加 1。
    • 如果当前数字 x 不等于候选值 val,则 cnt 减 1。
  3. 返回结果:遍历结束后,val 即为出现次数超过一半的数字。
**关键点: **
  • 摩尔投票算法的核心思想是 “抵消”。出现次数超过一半的数字,最终一定会保留在 val 中,因为其他数字的出现次数总和不足以完全抵消它。
  • 该算法假设输入数组 一定存在 出现次数超过一半的数字。如果题目不保证这一点,需要额外验证步骤(但本题已保证)。
指标说明
时间复杂度O(n)只需遍历数组一次,n 为数组长度。
时间复杂度O(1)只使用了常数级别的额外空间(valcnt)。

class Solution {
public:int moreThanHalfNum_Solution(vector<int>& nums) {int val = -1, cnt = 0;for(auto x : nums){if(!cnt) val = x, cnt = 1;else {if(val == x) cnt ++;else cnt --;}}return val;}
};
http://www.cadmedia.cn/news/11456.html

相关文章:

  • 网站改版有什么影响谷歌搜索引擎香港免费入口
  • 快递公司网站制作磁力搜索引擎
  • 电子商务网站建设 教学ppt合肥网站建设
  • 揭阳企业网站建设开发媒体发稿推广
  • 学校网站建设关键技术灰色行业关键词优化
  • 公司怎么做网页seo标题优化导师咨询
  • 网站seo快排软件网址收录网站
  • 南昌广告制作有限公司百度快照优化培训班
  • 广告网站建设公司seo系统源码出售
  • 网站升级及政务新媒体建设方案什么是整合营销并举例说明
  • 网站优化关键词网络营销战略有什么用
  • ps做网站效果图成都网站优化公司
  • 网站建设金网科技竞价出价怎么出
  • 云南省安宁市建设厅官方网站建站系统源码
  • 上海政策最新规定网站优化排名推广
  • 长春新建高铁站网站排名优化工具
  • aspnet网站开发 视频美国今天刚刚发生的新闻
  • 县公安网站建设方案青岛网站建设方案优化
  • 动易网站论坛中国网站建设公司前十名
  • 贵阳建设局网站注册公司
  • 网页制作与网站建设知识框架图排名seo公司
  • 广东省建设安全卡查询网站做seo推广一年大概的费用
  • wordpress用什么空间 曹鹏优化设计答案六年级上册语文
  • 鲜花网站建设方案互联网推广员是做什么
  • facebook外贸推广seo入门课程
  • 北京住房与城乡建设厅网站新闻头条
  • 电商网站的建设与维护哪家培训机构好
  • 旅游网站怎么设计seo网站优化培训怎么做
  • 东莞网站制作咨询祥奔科技深圳关键词排名推广
  • 个人网站建设制作专业软文发布平台