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

蓝色商务网站模板东莞网站优化

蓝色商务网站模板,东莞网站优化,网站备案核验单怎么选,wordpress 多站点 无法访问操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组非空,并且一定存在满足条件的数字(即一定有一个数字出现次数超…
  • 操作系统:ubuntu22.04
  • IDE:Visual Studio Code
  • 编程语言:C++11

题目描述

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
你可以假设数组非空,并且一定存在满足条件的数字(即一定有一个数字出现次数超过一半)。

示例:

输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]
输出: 2

解法一:摩尔投票法(最优解,时间 O(n),空间 O(1))

这是本题的最佳解法,利用“抵消”思想。
🧠 核心思想:

  • 设一个候选数 candidate 和计数器 count;
  • 遍历数组:
    • 如果 count == 0,更新候选人为当前数;
    • 如果当前数等于候选人,count++;
      - 否则 count–;
  • 最终留下的候选人就是我们要找的“出现次数超过一半”的数字。

因为题目保证存在,所以不需要额外验证。

实现代码

#include <vector>int findMost( std::vector< int > nums )
{// 候选人int candidate = nums[ 0 ];// 投票计数器int count = 1;for ( int i = 1; i < nums.size(); ++i ){if ( nums[ i ] == candidate ){// 相同数字,票数加一count++;}else{// 不同数字,票数减一count--;// 票数归零,更换候选人if ( count == 0 ){candidate = nums[ i ];count     = 1;}}}// 因为题目保证存在,所以直接返回候选人即可return candidate;
}int main()
{std::vector< int > nums = { 1, 3, 2, 2, 2, 2, 6 };int count = findMost( nums );std::cout << count << std::endl;
}

运行结果

2

解法二:哈希表统计(次优解,时间 O(n),空间 O(n))

遍历数组,使用哈希表记录每个数字出现的次数,最后找到出现次数大于 n/2 的那个数字。
示例代码:


int findMost( std::vector< int >& nums )
{std::unordered_map< int, int > freq;for ( int num : nums ){freq[ num ]++;if ( freq[ num ] > nums.size() / 2 )return num;}return -1;  // 不会执行到这里(题目保证存在)
}

解法三:排序取中位数(时间 O(n log n),空间 O(1) 或 O(n))

将数组排序后,中间位置的元素一定是出现次数超过一半的数字(因为其至少占一半+1)。

int findMost( std::vector< int >& nums )
{std::unordered_map< int, int > freq;for ( int num : nums ){freq[ num ]++;if ( freq[ num ] > nums.size() / 2 )return num;}return -1;  // 不会执行到这里(题目保证存在)
}
http://www.dtcms.com/wzjs/66737.html

相关文章:

  • 广州城乡建设网站自己怎么优化网站排名
  • 柳州正规网站制作公司百度快照怎么打开
  • 做导购型网站网店无货源怎么做
  • element ui做门户网站千锋教育培训多少钱费用
  • 医院网站 功能怎样免费给自己的公司做网站
  • 亚马逊网站建设评述广告投放网
  • 哈尔滨建筑温州网站建设优化
  • 网站经营与建设分发平台
  • 网站接入协议及接入商资质武汉seo优化公司
  • 建设银行宁波分行网站app推广接单平台哪个好
  • 健身餐的网站怎么做百度投票人气排行榜入口
  • 哪个全球购网站做的好处查网址
  • 平面广告设计网址重庆seo服务
  • 企业网站优化案例电商数据分析
  • 湖南常德最新疫情最新消息seo网络推广教程
  • 如何设计一个网站没灵感百度小说搜索排行榜
  • 山西正规网站建设报价公司网站开发制作培训学校
  • 阿里巴巴官网招聘网站百度推广和优化有什么区别
  • 成都企业做网站多少钱搜索引擎优化的基本原理
  • 吉安网站制作公司排名数字营销是干啥的
  • 工信部网站备案查询 手机优化设计三年级上册语文答案
  • 工作室网站免费建设免费推广网站2023mmm
  • 分宜网站建设chatgpt中文在线
  • 外贸网站建站公司中国万网登录入口
  • 青岛高端模板建站企业网站优化技巧
  • 健身网站怎么做个人网站免费制作平台
  • 新媒体营销策略有哪些郑州黑帽seo培训
  • 石家庄网站建设工作室体验营销策划方案
  • 深圳公司免费网站建设怎么样营销咨询公司排名前十
  • 小学网站logo怎么做免费搭建自己的网站