leetcode 229: Majority Element II

news/2024/10/23 5:47:46/

Majority Element II

Total Accepted: 3172 Total Submissions: 14746

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.


[思路]

[REFERENCE] http://bookshadow.com/weblog/2015/06/29/leetcode-majority-element-ii/

观察可知,数组中至多可能会有2个出现次数超过 ⌊ n/3 ⌋ 的众数

记变量n1, n2为候选众数; c1, c2为它们对应的出现次数

遍历数组,记当前数字为num

若num与n1或n2相同,则将其对应的出现次数加1

否则,若c1或c2为0,则将其置为1,对应的候选众数置为num

否则,将c1与c2分别减1

最后,再统计一次候选众数在数组中出现的次数,若满足要求,则返回之。


[CODE]

public class Solution {public List<Integer> majorityElement(int[] nums) {// 1, 2List<Integer> res = new ArrayList<>();if(nums==null || nums.length==0) return res;if(nums.length==1) {res.add(nums[0]);return res;}int m1 = nums[0];int m2 = 0;int c1 = 1;int c2 = 0;for(int i=1; i<nums.length; i++) {int x = nums[i];if(x==m1) ++c1;else if(x==m2) ++c2;else if(c1==0) {m1 = x;c1 = 1;} else if(c2==0) {m2 = x;c2 = 1;} else {--c1; --c2;}}c1 = 0; c2 = 0;for(int i=0; i<nums.length; i++) {if(m1 == nums[i]) ++c1;else if(m2 == nums[i]) ++c2;}if(c1>nums.length/3) res.add(m1);if(c2>nums.length/3) res.add(m2);return res;}
}



http://www.ppmy.cn/news/545649.html

相关文章

AtCoder Beginner Contest 229

D - Longest X 题意&#xff1a; 给定一个只由 X X X和 ‘ . ’ ‘.’ ‘.’组成的字符串,现在可以把任意位置上的 ‘ . ’ ‘.’ ‘.’改成 X X X&#xff0c;问最多改 K K K次&#xff0c;由连续的 X X X组成的字符串的最长长度 这个题的思路与下面的 F F F类似&#xff0c…

九大数据结构

数据结构想必大家都不会陌生&#xff0c;对于一个成熟的程序员而言&#xff0c;熟悉和掌握数据结构和算法也是基本功之一。数据结构本身其实不过是数据按照特点关系进行存储或者组织的集合&#xff0c;特殊的结构在不同的应用场景中往往会带来不一样的处理效率。 常用的数据结…

数据治理校验规则

&#xff08;一&#xff09;常用校验内容&#xff1a; 身份证号校验 手机号校验 电话号校验 IP地址校验 根据身份证进行性别校验 根据身份证进行年龄校验 空格校验 特殊字符校验 枚举值校验&#xff08;此处最多&#xff09; 主键校验 唯一值校验 上下游稽核校验&#xff08;数…

Elasticsearch:redact processor - 编辑处理器

警告&#xff1a;此功能处于技术预览阶段&#xff0c;可能会在未来版本中更改或删除。 Elastic 将尽最大努力解决任何问题&#xff0c;但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。 Redact 处理器使用 Grok 规则引擎来模糊输入文档中与给定 Grok 模式匹配的文本。…

北交大计算机老师夏嘉楠,北京交通大学院系部处文件-馆档网.DOC

北京交通大学院系部处文件-馆档网 馆档网 专业文档检索与下载 HYPERLINK "/" /  本文档下载自HYPERLINK "/"馆档网&#xff0c;如果排版有问题&#xff0c;您也可以点击以下网址在线阅读&#xff1a; HYPERLINK "/doc/4542805.html" /doc/4542…

精品展柜,展示柜

佛山嘉艺专业从事佛山展柜的设计制作&#xff0c;再这几年里我们拥有自己的专业技术理念&#xff0c;现在为您介绍一下展示柜&#xff1a; 精品展柜,展示柜主要用于摆放贵重且体积不大&#xff0c;需有较好的展示空间的商品&#xff0c;达到展示商品和储货的功能。  精品展…

【转】javascript里的document.all用法

【转】javascript里的document.all用法 1 、理解document.all [] 从IE4开始IE的object model才增加了 document.all [],来看看 document.all []的Description: Array of all HTML tags in the document.Collection of all elements contained by the object. 也就是说 docu…

一人得道鸡犬升天 盘点苹果产业链的156家供应商

从3000亿美元到5000亿美元&#xff0c;再到6333亿美元&#xff0c;苹果公司一跃成为有史以来全球最值钱公司&#xff0c;可谓富可敌国。随着新一代苹果iPhone5即将面世&#xff0c;6000亿美元的市值或将更上一层楼。   近日&#xff0c;苹果首次公布供应商名单&#xff0c;涵…