尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
C语言/数据结构算法题解:Boyer-Moore投票算法——找出数组中出现次数超过一半的数字(众数)
问题描述小R从班级中抽取了一些同学每位同学都会给出一个数字。已知在这些数字中有且只有一个数字的出现次数超过了数字总数的一半。现在需要你帮助小R找到这个数字。输入格式输入为一个整型数组array数组长度n满足约束1 ≤ n ≤ 10000数组中的每个元素均为整数且满足-1000 ≤ array[i] ≤ 1000输出格式返回出现次数超过一半的数字注意题目保证有且只有一个数字满足条件无需考虑多个解或无解的情况程序代码#include stdio.hint majorityElement(int* array, int arraySize) {int candidate 0;int count 0;for (int i 0; i arraySize; i) {if (count 0) {candidate array[i];count 1;} else if (array[i] candidate) {count;} else {count--;}}return candidate;}int main() {int test1[] {1, 3, 8, 2, 3, 1, 3, 3, 3};int test2[] {5, 5, 5, 1, 2, 5, 5};int test3[] {9, 9, 9, 9, 8, 9, 8, 8};printf(%d\n, majorityElement(test1, 9));printf(%d\n, majorityElement(test2, 7));printf(%d\n, majorityElement(test3, 8));return 0;}#include stdio.h int majorityElement(int* array, int arraySize) { int candidate 0; int count 0; for (int i 0; i arraySize; i) { if (count 0) { candidate array[i]; count 1; } else if (array[i] candidate) { count; } else { count--; } } return candidate; } int main() { int test1[] {1, 3, 8, 2, 3, 1, 3, 3, 3}; int test2[] {5, 5, 5, 1, 2, 5, 5}; int test3[] {9, 9, 9, 9, 8, 9, 8, 8}; printf(%d\n, majorityElement(test1, 9)); printf(%d\n, majorityElement(test2, 7)); printf(%d\n, majorityElement(test3, 8)); return 0; }运行结果
RELATED

相关推荐

从0到1理解身份证校验算法:id-validator源码中的数学逻辑与实现

从0到1理解身份证校验算法:id-validator源码中的数学逻辑与实现

从0到1理解身份证校验算法:id-validator源码中的数学逻辑与实现 【免费下载链接】id-validator 中华人民共和国居民身份证、中华人民共和国港澳居民居住证以及中华人民共和国台湾居民居住证号码验证工具(PHP 版) 项目地址: https://gitcode…

📅 2026/9/9 9:52:48
从“一步一想”到“先全局规划”:ReAct vs Plan-and-Execute,AI Agent的两种“思考方式”

从“一步一想”到“先全局规划”:ReAct vs Plan-and-Execute,AI Agent的两种“思考方式”

让Java开发者像写Spring Boot一样开发AI应用——第四课写在前面 前三天,我们学会了创建单Agent、理解ReAct循环、构建多Agent协作系统。 但有一个问题始终在困扰着许多开发者:ReAct Agent运行时,为什么经常“原地打转”? 明明已经…

📅 2026/9/19 17:19:10
Mac Mouse Fix终极指南:让10美元鼠标在macOS上超越苹果触控板

Mac Mouse Fix终极指南:让10美元鼠标在macOS上超越苹果触控板

Mac Mouse Fix终极指南:让10美元鼠标在macOS上超越苹果触控板 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 你是否曾经在macOS上使…

📅 2026/9/15 14:17:10
MORE NEWS

更多资讯

📰

2026 AI Coding 工具选购指南:零基础新手如何用 TaoToken 统一 Key 接入 AI 编程平台

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

openclaw极简部署教程:用 TaoToken 统一 Key 打通配置文件

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

为Codex打造跨会话长期记忆:OpenViking设计与实战

大概每一个用过 Codex 写代码的人,都经历过那种“明明上次已经聊过的内容,这次还得重新解释一遍”的崩溃瞬间。代码改到一半,新起一个会话,Codex 就像失忆了一样,连我们上午刚定下的命名规范、目录结构、依赖版本都忘得…

📰

AI Agent Harness Engineering 公益落地:TaoToken 统一通道下的灾害预警、慈善捐赠与资源分配优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

多商户多仓库云进销存ERP源码部署与二次开发全攻略

简介:这套源码是一套面向多商户、多仓库场景的云进销存ERP管理系统,采用软件即服务的营销版架构,支持条码扫描快速录入、跨仓库调拨、库存同步和多商户数据集中管理,并为无限商户提供营销功能,适合电商、连锁零售和分销…

📰

如何隐藏光标:用 TaoToken 统一 Key 调试 CONSOLE_CURSOR_INFO 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬