leetcode 229. Majority Element II

帕塞瓦尔定理(Parseval‘s theorem)的证明 帕塞瓦尔定理(Parseval's theorem)表明了信号在时域和频域上的能量相等。 阅读详情

题目:

Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorithm should run in linear time and in O(1) space.

思路:

http://www.cnblogs.com/grandyang/p/4606822.html

这道题让我们求出现次数大于n/3的众数,而且限定了时间和空间复杂度,那么就不能排序,也不能使用哈希表,这么苛刻的限制条件只有一种方法能解了,那就是摩尔投票法 Moore Voting,这种方法在之前那道题Majority Element 求众数中也使用了。题目中给了一条很重要的提示,让我们先考虑可能会有多少个众数,经过举了很多例子分析得出,任意一个数组出现次数大于n/3的众数最多有两个,具体的证明我就不会了,我也不是数学专业的。那么有了这个信息,我们使用投票法的核心是找出两个候选众数进行投票,需要两遍遍历,第一遍历找出两个候选众数,第二遍遍历重新投票验证这两个候选众数是否为众数即可,选候选众数方法和前面那篇Majority Element 求众数一样,由于之前那题题目中限定了一定会有众数存在,故而省略了验证候选众数的步骤,这道题却没有这种限定,即满足要求的众数可能不存在,所以要有验证。代码如下:

class Solution {
public:
    vector<int> majorityElement(vector<int>& nums) {
        vector<int> res;
        int m = 0, n = 0, cm = 0, cn = 0;
        for (auto &a : nums) {
            if (a == m) ++cm;
            else if (a ==n) ++cn;
            else if (cm == 0) m = a, cm = 1;
            else if (cn == 0) n = a, cn = 1;
            else --cm, --cn;
        }
        cm = cn = 0;
        for (auto &a : nums) {
            if (a == m) ++cm;
            else if (a == n) ++cn;
        }
        if (cm > nums.size() / 3) res.push_back(m);
        if (cn > nums.size() / 3) res.push_back(n);
        return res;
    }
};



KEIL MDK 生成bin文件实战:C51与ARM双平台配置指南 本文详细介绍了在KEIL MDK开发环境中,为C51和ARM双平台自动生成BIN文件的实战方法。针对C51平台,通过srec_cat.exe工具编写批处理脚本并集成到KEIL;针对ARM平台,则利用fromelf.exe工具直接配置。文章还提供了通用脚本方案和路径、变量、版本兼容性等常见问题的避坑指南,帮助开发者高效完成嵌入式程序部署。 阅读详情

相关推荐

告别龟速下载!保姆级教程:用离线包5分钟搞定Arduino IDE的STM32开发环境(附最新库文件)

本文提供了一套完整的Arduino IDE离线配置方案,帮助开发者5分钟快速搭建STM32开发环境。通过详细的板支持包安装指南、文件校验方法和常见问题解决方案,彻底解决GitHub下载慢的问题,提升开发效率。

weixin_26802933的博客 362

229. Majority Element II

Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorithm should run in linear time and in O(1) space.找出数组中出现次数大于n/3的元素。分析:出现此处大于n/3的元素个数最多2个。遍历数组,用两个变量分别存...

学习应该是一个长链接 216

Clion+platformIO开发ESP32时找不到lib文件中引入第三方库的头文件(头文件下有波浪线),实际编译是成功的解决方法

Clion+platformIO开发ESP引入第三方库文件编译器无法找到.h文件但编译成功

zs5218的博客 1851

leetcode 169. Majority Element(大多数的元素)

给出一个数组,找出其中过半的元素。 思路: 因为这里的假设是一定存在过半的元素。 用Moore Voting法,需要 O(n) 的时间和 O(1) 的空间。 先假设count =1 , majority是第一个元素,从左到右遍历数组,当前数字 != majority时,count–。 直到count== 0 时, 更新mojority为当前数字,count重新置为1。如果当前数字==majority,那么count++ 因为题目中假设一定存在这样的元素,所以最后不需要再验证majority的个数是否>

蓝羽飞鸟的博客 477

【FPGA】Robei EDA 的使用(7)—— Robei文件上板试验

#沐朝露兮以自华,觅大道兮以求成 我又滚过来了,研究了20多天RISCV,结果最后因为硬件问题导致无法在比赛中使用RISCV CPU,虽然已经临近比赛后期了,非常的崩溃,但是也没有什么办法。唉,一切不过是从头再来罢了。(写写博客舒缓我心中苦闷) ————————————————进入正文的分割线———————————————— 今天介绍一下如何利用 Robei EDA 生成文件,导入vivado中,综合下载到开发板里。拿我一个PWM控制舵机的代码为例。 Robei EDA设置 假设代码模块(model文件)经

Ninquelote的博客 2561

Dify 1.0+内网部署全攻略:模型插件离线安装与信创环境适配

本文详细介绍了Dify 1.0+版本在内网环境中的部署全攻略,重点解析了模型工具插件的离线安装方法与信创环境适配技巧。通过实战经验分享,帮助企业在严格的内网隔离条件下高效部署AI平台,解决插件依赖和安装难题,提升大语言模型的应用效率。

weixin_29224529的博客 273

169. 多数元素(majority-element)

给定一个大小为n的数组nums,返回其中的多数元素。多数元素是指在数组中出现次数⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。**进阶:**尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。

mirana的专栏 428

【Windows Server 2019】Active Directory Certificate Services 证书颁发机构的安装,配置和管理Ⅰ——AD CS的安装和配置

博文主要介绍了Windows Server 2019的证书颁发机构的安装和配置方法。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 4832

Majority Element II

原题: Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorithm should run in linear time and in O(1) space.解题: 这个其实跟编程之美上面的“寻找发帖水王”的题如出一辙,也就是寻找一个数组中超过一半的元素

473

HFSS实战项目——GPS北斗双模微带天线

本文设计了一款方形圆极化微带天线应用于北斗B1和GPSL1频段,满足高增益、低VSWR、适当方向图等要求。设计中心频率为1568MHz,介质板采用厚度h=1.6mm的Arlon AD450(tm)板,相对介电常数为4.5,采用探针馈电。

2401_87464239的博客 1765

Python爬虫实战:Boss直聘职位数据采集实战 - Playwright + 结构化解析完整方案(附CSV导出 + SQLite持久化存储)!

我长期专注 Python 爬虫工程化实战,主理专栏 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 2185

Leetcode 229 Majority Element II

Leetcode 229 Majority Element II题目思路 题目 Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. Note: The algorithm should run in linear time and in O(1) space. Example 1: Input: [3,2,3] Output: [3] Example 2: Input: [1,

weixin_43796689的博客 206

YOLOv11改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进v11颈部网络

本文记录的是利用颈部结构优化YOLOv11的目标检测网络模型。利用改进后的颈部网络,通过跳层连接,避免了在进行反向传播时的梯度消失问题,并且引入跨尺度连接,可以实现不同级别和层次的特征充分融合,获取足够的高层语义信息和低层空间信息交换,从而在大规模变化场景下提高检测性能。GIRAFFEDET: A HEAVY-NECK PARADIGM FOR OBJECT DETECTION-GFPN包含了上述的跳层连接(dense-link和log2nlog _{2} nlog2​n-link)以及跨尺度连接(Quee

Limiiiing的博客 3002

【leetcode】【medium】229. Majority Element II​​​​​​​

229. Majority Element II Given an integer array of sizen, find all elements that appear more than⌊ n/3 ⌋times. Note:The algorithm should run in linear time and in O(1) space. Example 1: Input...

lemonade13的博客 107

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

LeetCode 169. Majority Element and LeetCode 229. Majority Element II解题报告

LeetCode 169.Majority Element LeetCode 229. Majority Element II

My Blog 1638

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LeetCode 229 --- Majority Element II

题目链接: LeetCode 229 — Majority Element IIAC代码:public class Problem229 { public static void main(String[] args) { // TODO Auto-generated method stub int[] name ={1,1,1,2,3}; m

调包侠 407

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

LeetCode——229. 求众数 II(Majority Element II)[中等]——分析及代码(C++)

LeetCode——229. 求众数 II[Majority Element II][中等]——分析及代码[C++]一、题目二、分析及代码1. 摩尔投票法(1)思路(2)代码(3)结果三、其他 一、题目 给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 示例 1: 输入:[3,2,3] 输出:[3] 示例 2: 输入:nums = [1] 输出:[1] 示例 3: 输入:[1,1,1,3,3,2,2,2] 输出:[1,2]

江南土豆的博客 379

LeetCode 229. Majority Element II

LeetCode 229. Majority Element II,Boyer–Moore majority vote algorithm 找数组中出现次数超过⌊ n/3 ⌋次的所有元素,在O(n)时间和O(1)空间复杂度要求下实现。

ljwinds的博客 326

leetcode 229: Majority Element II

leetcode 229: Majority Element II python java c++

西施豆腐渣 1万+

【leetcode】(python)229. Majority Element II多数元素II

多数元素IIDescriptionExample题意解题思路code 229. Majority Element II Medium Description Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. Note: The algorithm should run i...

。 540

Leetcode 229. Majority Element II

题目描述:找出数组中超过向下取整n//3的数 题目链接:Leetcode 229. Majority Element II 题目思路:跟之前n//2的众数不一样的是这里不保证有众数而且可能为空。 还是使用投票法,但是这个要投出2个数字出来,最多,最少0个。所以设置两个计数器。 c1、c2候选者和cnt1、cnt2计数器,当其中一个计数器为0的时候,就把n置位,并初始化计数器,如果碰到相等的就...

Za七杂⑧ 309

LeetCode 229. Majority Element II

做完LeetCode 169. Majority Element  后趁热打铁,做了Majority Element II。                    这道题和169相似。差别在于,要找出所有出现次数大于n/3的数字,注意数字可能是不存在的。                    做法也和169相似,注意到数字最多只有两个,所以这次需要假设两个Majority Element,而且

isNoel的博客 499

LeetCode //C - 229. Majority Element II

【代码】LeetCode //C - 229. Majority Element II。

Made in Code 1118

[leetcode] 229. Majority Element II

Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorithm should run in linear time and in O(1) space. Hint: How many majority elements could it po

TstsUgeg的博客 910

【LeetCode】229.Majority Element II(Medium)解题报告

【LeetCode】229.Majority Element II(Medium)解题报告 题目地址:https://leetcode.com/problems/majority-element-ii/#/description 题目描述:   Given an integer array of size n, find all elements that appear more th...

郝春雨的博客 507

[LeetCode 229] Majority element II

Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorithm should run in linear time and in O(1) space. Solution: At most has two elements in the r

coder 进阶的专栏 1755
上一篇: leetcode 307. Range Sum Query - Mutable
下一篇: leetcode 648. Replace Words
xclfafa
博客等级 码龄11年 0粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值