尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
DeepSeek    LeetCode 229. 多数元素 II Java实现
LeetCode 229. 多数元素 II Java 实现思路Boyer-Moore 投票算法扩展版出现次数超过 ⌊n/3⌋ 的元素最多只有 2 个。因此可以用两个候选人和两个计数器在 O(n) 时间内找出可能的候选人再遍历一次验证。算法步骤第一遍遍历维护两个候选 candidate1、candidate2 和对应计数 count1、count2。遇到相同候选人则计数加一否则若某计数为 0则替换候选人否则两个计数都减一。第二遍遍历统计两个候选人的真实出现次数。将出现次数 n/3 的候选人加入结果。Java 代码classSolution{publicListIntegermajorityElement(int[]nums){intcandidate10,candidate20;intcount10,count20;// 第一遍找出两个可能的候选人for(intnum:nums){if(count10numcandidate1){count1;}elseif(count20numcandidate2){count2;}elseif(count10){candidate1num;count11;}elseif(count20){candidate2num;count21;}else{count1--;count2--;}}// 第二遍验证候选人是否真的超过 n/3count10;count20;for(intnum:nums){if(numcandidate1){count1;}elseif(numcandidate2){count2;}}ListIntegerresnewArrayList();intnnums.length;if(count1n/3)res.add(candidate1);if(count2n/3candidate2!candidate1)res.add(candidate2);returnres;}}复杂度分析· 时间复杂度O(n)遍历数组两次。· 空间复杂度O(1)只用了常数个变量。示例输入:nums[3,2,3]输出:[3]输入:nums[1,1,1,3,3,2,2,2]输出:[1,2]输入:nums[1,2,3,4]输出:[]关键点· 候选人最多两个因为若某元素出现次数 n/3三个这样的元素出现次数之和就超过 n矛盾。· 投票阶段只负责筛选出“可能”的候选人必须进行第二次遍历验证。· 使用 count 0 num candidate 的判断可以避免初始值 0 与真实元素冲突。
RELATED

相关推荐

电工基础入门必备

电工基础入门必备

文章目录: 一:电工基础介绍 1.概述 1.1 来源 1.2 分类 2.电流对人体伤害的程度 3.触电形式 4.触电急救 5.电工安全操作知识 6.常见低压电工作业工具 6.1 常用工具 6.2 安全工具 7.常见电路故障 二:低压电气元件 三:…

📅 2026/10/6 23:56:57
DeepSeek    LeetCode 236. 二叉树的最近公共祖先 Java实现

DeepSeek LeetCode 236. 二叉树的最近公共祖先 Java实现

LeetCode 236. 二叉树的最近公共祖先 Java 实现 思路:递归后序遍历 从根节点开始递归:如果当前节点为空,或当前节点就是 p 或 q,直接返回当前节点。分别递归左右子树,得到 left 和 right。如果 left 和 right 都…

📅 2026/10/6 23:56:56
26年程序员转AI指南:收藏这份学习路线,轻松拥抱大模型时代!

26年程序员转AI指南:收藏这份学习路线,轻松拥抱大模型时代!

文章分享了程序员如何成功转型AI领域的心得与经验。核心内容围绕五个学习阶段展开:先理解大模型调用本身,再学习AI应用开发所需能力,重点掌握RAG,随后学习Agent,最后通过项目实践积累经验。强调理解模型、业务和工程的…

📅 2026/10/6 23:51:56
MORE NEWS

更多资讯

📰

回溯法详解:LeetCode 46. 全排列

一、 问题描述给定一个不含重复数字的数组 nums,返回其所有可能的全排列。你可以按任意顺序返回答案。示例:输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]二、 核心思路:回溯 (Backtrac…

📰

【Web全栈进阶】PostgreSQL上手:Docker跑库 + 把早报站从SQLite迁过去

今天不写新功能,做一次“搬家”:把早报站的数据从SQLite搬进PostgreSQL——这是整个二季的地基工程。 🎯 本篇产出:一个跑在Docker里的PostgreSQL、一份可重复执行的数据迁移脚本、以及“为什么换”的完整决策链。含代码约60行。 …

📰

AI获客怎样减少重复线索?意客AI的原文复用与版本筛选

销售昨天看过一条办公室搬迁需求,今天又在“新线索”里看到它。如果对方已经暂停搬迁,第二次出现带来的只是一次重复阅读;如果需求范围变了,沿用昨天的沟通准备还可能问错问题。 星河卓越旗下意客AI根据业务描述寻找匹配需求&…

📰

装配车间MES落地指南:SimpleMES工单流转、BOM与齐套检查实战

简介:一套基于.NET 4.0的SimpleMES加工装配模拟系统,面向MES系统学习者、课程设计或毕业设计人员,以及需要快速搭建制造执行原型的开发者。服务端与客户端分工明确:服务端包含基础档案、加工与装配计划管理、实时看板和数据初始化…

📰

基于sEMG与IMU的手语手势识别:从数据采集到实时部署避坑指南

简介:这套基于sEMG(表面肌电)与IMU(惯性测量单元)的手语手势识别项目,面向从事人机交互、康复工程或移动感知研究的学生与开发者,覆盖从数据采集到实时识别的完整流程。包内共59个文件&#xff…

📰

手表页面退出后传感器还在采样:HarmonyOS 穿戴订阅的功耗预算与生命周期

手表页面退出后传感器还在采样:HarmonyOS 穿戴订阅的功耗预算与生命周期 先定义什么叫“通过” 运动页面退出后,日志仍持续收到传感器数据,几小时后耗电明显上升。排查发现每次进入页面都会新增监听,退出只停止 UI 定时器&#x…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

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

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

📞 💬