news 2026/5/11 17:47:36

LeetCode 多数元素II题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 多数元素II题解

LeetCode 多数元素II题解

题目描述

给定一个整数数组,找出所有出现次数超过 ⌊ n/3 ⌋ 的元素。

示例

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

解题思路

方法: Boyer-Moore 投票算法

思路

  • 使用 Boyer-Moore 投票算法的扩展版本。
  • 最多有 2 个元素出现次数超过 n/3。
  • 先找出可能的候选元素,再验证。

复杂度分析

  • 时间复杂度:O(n)。
  • 空间复杂度:O(1)。

代码实现

def majority_element_ii(nums): if not nums: return [] candidate1 = candidate2 = None count1 = count2 = 0 for num in nums: if candidate1 == num: count1 += 1 elif candidate2 == num: count2 += 1 elif count1 == 0: candidate1 = num count1 = 1 elif count2 == 0: candidate2 = num count2 = 1 else: count1 -= 1 count2 -= 1 count1 = count2 = 0 for num in nums: if num == candidate1: count1 += 1 elif num == candidate2: count2 += 1 result = [] n = len(nums) if count1 > n // 3: result.append(candidate1) if count2 > n // 3: result.append(candidate2) return result # 测试 def test_majority_element_ii(): nums = [1, 1, 1, 3, 2, 2, 2] print(majority_element_ii(nums)) # 输出:[1, 2] if __name__ == "__main__": test_majority_element_ii()

总结

多数元素II是 Boyer-Moore 投票算法的扩展应用,找出所有出现次数超过 n/3 的元素。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 17:38:58

Anuki开源工具:基于模板驱动的项目脚手架生成器,提升创作者效率

1. 项目概述:一个面向创作者的开源工具 最近在和一些独立开发者、内容创作者朋友交流时,发现大家普遍面临一个痛点:如何高效地管理、复用和迭代自己的创作素材与项目模板。无论是写代码、做设计、写文章还是制作视频,我们总会积累…

作者头像 李华
网站建设 2026/5/11 17:38:44

Open-Interface:统一API抽象层框架的设计、实现与应用

1. 项目概述:一个开放接口的聚合与标准化实践 最近在折腾一些自动化流程和跨平台数据同步时,我常常遇到一个头疼的问题:不同服务、不同工具的API接口五花八门,认证方式、数据格式、调用频率限制各不相同。每次接入一个新服务&…

作者头像 李华
网站建设 2026/5/11 17:38:42

如何在Fusion 360中创建完美3D打印螺纹:新手终极指南

如何在Fusion 360中创建完美3D打印螺纹:新手终极指南 【免费下载链接】CustomThreads Fusion 360 Thread Profiles for 3D-Printed Threads 项目地址: https://gitcode.com/gh_mirrors/cu/CustomThreads 还在为3D打印的螺纹总是卡死或松动而烦恼吗&#xff1…

作者头像 李华
网站建设 2026/5/11 17:33:05

Arm Musca-B1芯片I/O多路复用器架构与配置详解

1. Arm Musca-B1测试芯片I/O多路复用器架构解析I/O多路复用器(IOMUX)是现代嵌入式系统中实现引脚功能复用的核心模块。在Arm Musca-B1测试芯片中,这一设计允许单个物理引脚通过寄存器配置动态切换多种功能信号路径。这种架构设计显著提升了芯…

作者头像 李华