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

面试经典150道之多数元素

多数元素

记一个方法

Boyer-Moore 投票算法

思路

Boyer-Moore 投票算法是一种在线性时间和常数空间内找到多数元素的高效算法。其基本思想是通过消除不同的元素来找到可能的多数元素。

算法步骤

  1. ​初始化​​:选择数组的第一个元素作为候选多数元素,并设置计数器为1。

  2. ​遍历数组​​:

    • 如果当前元素与候选多数元素相同,则增加计数器。

    • 如果不同,则减少计数器。

    • 如果计数器变为0,则更换候选多数元素为当前元素,并重置计数器为1。

  3. ​结果​​:遍历结束后,候选多数元素即为所求的多数元素。

为什么有效?

由于多数元素的数量超过数组的一半,即使其他元素与多数元素相互抵消,最终剩下的候选元素一定是多数元素。

代码部分:

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;}
}

我用的是哈希表方法,也就是用一个map存储数字和它出现的次数

http://www.lryc.cn/news/612538.html

相关文章:

  • nflsoi 8.6 题解
  • Python day36
  • stm32项目(22)——基于stm32的智能病房监护系统
  • 基于PHP的论坛社交网站系统开发与设计
  • Git Cherry-Pick 指南
  • 中国移动h10g-01_S905L处理器安卓7.1当贝纯净版线刷机包带root权限_融合终端网关
  • HTTP Flood攻击:数字时代的“蝗虫灾害“与智能防护之道
  • Python赋能气象与气候数据分析的生态构建与实战路径
  • 使用R将nc文件转换为asc文件或者tif文件
  • PyTorch入门引导
  • C++、STL面试题总结(一)
  • 【C++】二叉树进阶
  • JavaWeb(04)
  • Perforce P4 Plan - DevOps实时规划工具
  • Qt-桌面宠物
  • 4、docker数据卷管理命令 | docker volume
  • docker run 入门到进阶:容器启动背后的门道
  • PCB工艺-四层板制作流程(简单了解下)
  • C++与C语言实现Stack的对比分析
  • 如何快速翻译PPT中的文字(或简繁体转换)
  • PI 思维升级 解密电容器的选择与布局策略,带您追求极致平坦的电源阻抗
  • 【VTK】绘制圆锥进行简单的几何渲染
  • 图论(邻接表)DFS
  • AI领域的三箭齐发之夜 - genie3,gpt-oss, Opus 4.1
  • go与grpc
  • 【软考系统架构设计师备考笔记5】 - 专业英语
  • Xcode 26 如何在创建的 App 包中添加特定的目录
  • Linux——静态网络,创建用户
  • 基于PHP的快递管理系统的设计与实现
  • android10~16变更一览和开发者兼容应对