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

多数元素-leetcode

题目描述

给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。

示例 1:

输入:nums = [3,2,3]
输出:3

示例 2:

输入:nums = [2,2,1,1,1,2,2]
输出:2

提示:

  • n == nums.length
  • 1 <= n <= 5 * 104
  • -109 <= nums[i] <= 109
  • 输入保证数组中一定有一个多数元素。

进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。

解法一

思路:

如果将数组 nums 中的所有元素按照单调递增或单调递减的顺序排序,那么下标为image-20260429115044239的元素(下标从 0 开始)一定是众数。

代码:

class Solution {public int majorityElement(int[] nums) {Arrays.sort(nums);return nums[nums.length / 2];}
}

解法二

思路:

如果我们把众数记为 +1,把其他数记为 −1,将它们全部加起来,显然和大于 0,从结果本身我们可以看出众数比其他数多。

算法

Boyer-Moore 算法的本质和方法四中的分治十分类似。我们首先给出 Boyer-Moore 算法的详细步骤:

我们维护一个候选众数 candidate 和它出现的次数 count。初始时 candidate 可以为任意值,count 为 0;

我们遍历数组 nums 中的所有元素,对于每个元素 x,在判断 x 之前,如果 count 的值为 0,我们先将 x 的值赋予 candidate,随后我们判断 x:

  • 如果 x 与 candidate 相等,那么计数器 count 的值增加 1;
  • 如果 x 与 candidate 不等,那么计数器 count 的值减少 1。

在遍历完成后,candidate 即为整个数组的众数。

代码:

class Solution {public int majorityElement(int[] nums) {int count = 0;Integer candidate = null;for (int num : nums) {if (count == 0) {candidate = num;}count += (num == candidate) ? 1 : -1;}return candidate;}
}
http://www.jsqmd.com/news/718944/

相关文章:

  • 解锁论文合规新方案:九大查重降 AIGC 工具实用测评
  • m4s-converter:5秒完成B站缓存视频无损转换的终极解决方案
  • Bootstrap-Form-Builder性能优化技巧:RequireJS构建与代码压缩
  • Advanced React APIs:从基础到精通的终极指南
  • 2026长沙代账公司权威评测 | 企业主口碑8大财税公司专业推荐 - 品牌智鉴榜
  • 从洗衣机到汽车:聊聊LIN总线协议那些‘跨界’应用与调试技巧
  • 告别官方工具:手把手教你用Linux命令行打包和烧写Firefly RK3588固件
  • GPT-image-2 强势出圈!MCN 机构增收利器,AI 短剧带货系统实现矩阵号批量运营
  • 如何永久保存番茄小说:一个简单高效的离线阅读解决方案
  • Struts2-Scan性能优化:提升扫描效率的10个技巧
  • 2026年4月梳理:适合饮料厂采购的吹塑机厂家参考 - 速递信息
  • 智能散热引擎:开源动态温控系统如何提升ThinkPad 40%散热效能
  • 5步部署CosyVoice-300M Lite:打造你的专属语音合成服务
  • 免费离线语音识别!Fun-ASR-MLT-Nano-2512本地部署全流程解析
  • 掌握MDAnalysis:分子动力学模拟分析的高效Python工具
  • 打破AI编程工具限制:Cursor Free VIP解锁专业版功能的完整指南
  • 工业级人脸检测实战指南:YOLOv8 Face技术架构与多场景落地方案
  • Midscene.js视觉驱动自动化:如何用AI视觉技术将测试维护成本降低80%
  • 微信聊天记录完整导出终极指南:WxMsgDump实战解析
  • 2026西安最新人力资源公司:涵盖境外劳务派遣、西安劳务外包 - 深度智识库
  • 如何快速上手PyMARL:10分钟搭建你的第一个多智能体AI
  • 终极指南:如何使用Fan Control完全掌控Windows电脑风扇
  • 蓝桥杯国赛程序复盘:NE555测频、PWM电机控制与PCF8591采集的联调避坑指南
  • 脑机接口十大推荐品牌榜单:创新科技引领脑健康未来 - 速递信息
  • YOLOv5模型剪枝实战:从稀疏训练到8倍通道剪枝,我的完整踩坑笔记
  • 免费GPU内存检测神器:MemtestCL完整使用教程与实战技巧
  • 别再傻傻分不清了!LM358和LM324到底怎么选?从单电源到双电源,一次讲透
  • 从Landsat到你的研究:拆解GISA数据集背后的遥感技术栈与避坑指南
  • 3步解锁你的加密音乐:告别平台限制,让音乐真正属于你
  • 《赛博朋克2077》DLSS优化档案