LeetCode 169. 多数元素(摩尔投票法)【C语言 | LeetCode经典150题】
一、题目描述给定一个大小为n的数组nums返回其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的并且给定的数组总是存在多数元素。示例 1输入nums [3,2,3] 输出3示例 2输入nums [2,2,1,1,1,2,2] 输出2提示1 n 5 * 10^4 -10^9 nums[i] 10^9进阶要求时间复杂度 O(n) 空间复杂度 O(1)二、解题思路摩尔投票法这道题的最优解是Boyer-Moore Voting Algorithm摩尔投票法。核心思想如果一个元素出现次数大于 n/2那么它的数量一定比所有其他元素数量之和还多。因此我们可以让不同元素互相抵消最后剩下的一定是多数元素。算法步骤维护两个变量candidate 当前候选人 count 计数遍历数组① 当 count 0说明之前元素已经全部抵消当前元素成为新的候选人candidate nums[i]② 如果元素相同count③ 如果元素不同count--表示两个不同元素相互抵消三、过程示例数组nums [2,2,1,1,1,2,2]遍历过程元素candidatecount说明221新候选222相同 1121抵消120抵消111新候选210抵消221新候选最终候选人2四、C语言实现int majorityElement(int* nums, int numsSize) { int candidate 0; int count 0; for(int i 0; i numsSize; i) { if(count 0) { candidate nums[i]; } if(nums[i] candidate) { count; } else { count--; } } return candidate; }五、复杂度分析时间复杂度O(n)只需要遍历数组一次。空间复杂度O(1)只使用了常数变量。六、为什么摩尔投票法一定正确因为多数元素数量 n/2设多数元素数量 m 其他元素数量 k则m k在不断进行两两抵消时m - k 0因此最后留下的一定是多数元素。七、其他解法了解1 Hash表统计统计每个元素出现次数。时间复杂度O(n)空间复杂度O(n)2 排序法排序后nums[n/2]一定是多数元素。时间复杂度O(n log n)空间复杂度O(1)八、总结方法时间复杂度空间复杂度Hash表O(n)O(n)排序O(n log n)O(1)摩尔投票法O(n)O(1)摩尔投票法是本题最优解也是面试高频算法。

相关新闻

隐形正畸向量战场:Milvus混合过滤如何把长尾查询从塌陷拉回现实

隐形正畸向量战场:Milvus混合过滤如何把长尾查询从塌陷拉回现实

[随机医疗子赛道]:隐形正畸 [随机叙事视角]:某项前沿检索优化算法的工程落地 [随机技术栈与代码形态]:高维向量检索优化 Milvus 标量/向量混合过滤代码 [随机生僻压测指标]:高维向量余弦相似度衰减率、多跳实体对齐穿透率、标量过…

2026/7/6 10:01:16 阅读更多 →
谷歌与OpenAI深夜较量:Gemini 3.1与GPT-5.3的技术竞赛全面升级

谷歌与OpenAI深夜较量:Gemini 3.1与GPT-5.3的技术竞赛全面升级

由于国外AI在国内无法直接访问,因此需要使用镜像站才行。GPT镜像站注册入口:AIGCBAR镜像站。而gemini使用只能调用API独立站(点击后刷新一次再注册,网页有点问题),且暂时不支持Gemini 3.1,但是可…

2026/7/6 14:39:43 阅读更多 →
2026年最新指南:适合中小企业的轻量级Agent工具有哪些?实在Agent打破数字化门槛

2026年最新指南:适合中小企业的轻量级Agent工具有哪些?实在Agent打破数字化门槛

摘要: 进入2026年3月,人工智能应用已从云端问答全面进化为深度嵌入本地环境的“桌面级Agent”模式。对于资源受限的中小企业而言,选择一款低门槛、高性能的轻量级工具已成为生存关键。本文将深度解析当前市场上适合中小企业的轻量级Agent工具…

2026/7/8 22:01:47 阅读更多 →

最新新闻

损失函数(loss)

损失函数(loss)

5-损失函数(Loss) 可能影响网络训练失败_哔哩哔哩_bilibili 回归问题是模型给出一个预测值 分类问题,我们一般使用one-hot进行class的分类 输入特征 x 进入神经网络,经过加权求和、偏置、激活函数,最后输出三个类别的预测值。真实类别用 on…

2026/7/9 2:36:07 阅读更多 →
YOLO系列模型选型指南:从v10到v26的技术对比与迁移实践

YOLO系列模型选型指南:从v10到v26的技术对比与迁移实践

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 1. 项目概述:YOLO系列模型选型困境与解决方案 在目标检测领域,YOLO系列模型始终保持着技术领先地位。作为从业…

2026/7/9 2:34:06 阅读更多 →
从字节“期权激励“到阿里“3.25“:大厂绩效变局下,普通人如何靠AI智能体提升赚钱能力?

从字节“期权激励“到阿里“3.25“:大厂绩效变局下,普通人如何靠AI智能体提升赚钱能力?

导语 2025年至2026年,互联网大厂的绩效与激励体系正在经历一场深刻的变革。从字节跳动将"字节范"与"领导力原则"深度绑定绩效、大幅提升期权/RSU在半年激励中的比重,到阿里巴巴经典的"3.25"绩效制度改革,大厂…

2026/7/9 2:32:06 阅读更多 →
LangSmith | LangChain / LangGraph Agent 全链路追踪

LangSmith | LangChain / LangGraph Agent 全链路追踪

最近一段时间学习及制作Agent,但在向量库检索、Prompt 拼接、工具调用、多轮记忆读写、多层 LLM 嵌套;运行后总会出现幻觉、回答跑偏、响应超时、Token 成本暴增,却完全无法定位根源。 传统打印日志只能零散输出片段,断点调试无法复现 LLM 非…

2026/7/9 2:32:06 阅读更多 →
Hermes Agent cron 27 个实战任务调度拆解 \(按 7 大类 \+ 错峰 5min 实战\)

Hermes Agent cron 27 个实战任务调度拆解 \(按 7 大类 \+ 错峰 5min 实战\)

适用读者: 用 Hermes Agent / Claude Code / 任何 AI 助手搭生产级 cron 自动化的独立开发者 关键词: Hermes Agent / cron / 任务调度 / 错峰 / 监控 / Supabase / 飞书 / 微信公众号 一、为什么 27 个 cron 是 Hermes Agent 产线 作者用 Hermes Agent 搭个人 AI 助手 1 个月…

2026/7/9 2:32:06 阅读更多 →
通达信最佳买卖点指标

通达信最佳买卖点指标

AA05:MA(C,5),COLOR0099CC;五日乖离率:(C-AA05)/AA05*100; BB05:ATAN((AA05/REF(AA05,1)-1)*100)*180/3.1416; 速度5:SMA(EMA((AA05-REF(AA05,1))/REF(AA05,1),3)*100,3,1); 加速度5:EMA((速度5-REF(速度5,1)),3),LINETHICK0; STICKLINE(BB05>30 AND AA05>REF(AA05,1), A…

2026/7/9 2:30:04 阅读更多 →

日新闻

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 还在为Foobar2000找不到高质…

2026/7/9 0:01:04 阅读更多 →
ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍 【免费下载链接】ElegantBook Elegant LaTeX Template for Books 项目地址: https://gitcode.com/gh_mirrors/el/ElegantBook 你是否曾经为学术书籍的封面设计而烦恼?想要一个既专业又美观的封…

2026/7/9 0:03:06 阅读更多 →
如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南 【免费下载链接】pyodbc Python ODBC bridge 项目地址: https://gitcode.com/gh_mirrors/py/pyodbc 在当今数据驱动的商业环境中,企业级数据库连接已成为现代应用开发的核心需求。pyodbc作为一款强大…

2026/7/9 0:07:11 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/8 16:14:06 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/8 16:59:55 阅读更多 →

月新闻