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

Java中等题-多数元素2(力扣)【摩尔投票升级版】

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

示例 1:

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

示例 2:

输入:nums = [1]
输出:[1]

示例 3:

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

方法一:使用HashMap,key记录值,value记录出现次数

class Solution {public List<Integer> majorityElement(int[] nums) {Map<Integer,Integer>map=new HashMap<>();for(int x:nums){map.put(x,map.getOrDefault(x,0)+1);}int n=nums.length;int t=n/3;List<Integer> list=new ArrayList<>();for (Map.Entry<Integer, Integer> entry : map.entrySet()) {if(entry.getValue()>t){list.add(entry.getKey());}}return list;}
}

方法二:使用摩尔投票:一个数组中出现次数要大于总数的三分之一,满足条件的最多也只有两个数

class Solution {public List<Integer> majorityElement(int[] nums) {int a=nums[0];int a1=0;int b=nums[0];int b1=0;for(int x:nums){if(x==a){a1++;}else if(x!=a&&x!=b&&b1==0){b=x;b1++;}else if(x!=a&&x!=b&&a1==0){a=x;a1++;}else if(x!=a&&x!=b){a1--;b1--;}else if(x==b){b1++;}}List<Integer>list=new ArrayList<>();a1=0;b1=0;for(int x:nums){if(x==a) a1++;else if(x==b) b1++;}int t=nums.length/3;if(a1>t){list.add(a);}if(b1>t){list.add(b);}return list;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 黑暗之魂和艾尔登法环有什么联系吗 黑暗之魂和艾尔登法环哪一个好玩 苹果电脑怎么玩Windows游戏 apple电脑可以玩游戏吗
  • TCP 和 UDP 之间的区别?
  • 「阅读」数据密集型系统设计第三章
  • 电子元器件—电容和电感(一篇文章搞懂电路中的电容和电感)(笔记)(面试考试必备知识点)电容和电感作用、用途、使用、注意事项、特点等(面试必备)-笔记(详解)
  • 第三关:Git 基础知识
  • 【Python】异常处理及程序调试
  • 记录一次环境的安装
  • 嵌入式Linux系统中LCD屏驱动框架基本实现
  • 【SQL Server】默认端口与自定义端口
  • vulhub:Apache解析漏洞apache_parsing
  • FFmpeg的make install
  • 【反序列化漏洞】serial靶机详解
  • 动态加载第三方库——dlopen
  • HCIP学习作业一 | HCIA复习
  • 在 Magento 2.4.3 中手动下载和安装样本数据
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【笔记】你不知道的JS读书笔记——Promise
  • 78. Subsets
  • JavaScript 奇技淫巧
  • Java超时控制的实现
  • Java应用性能调优
  • LintCode 31. partitionArray 数组划分
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Tornado学习笔记(1)
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 闭包,sync使用细节
  • 搞机器学习要哪些技能
  • 聚类分析——Kmeans
  • 前端
  • 使用 Docker 部署 Spring Boot项目
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 首页查询功能的一次实现过程
  • 我从编程教室毕业
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (1)Jupyter Notebook 下载及安装
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (LeetCode C++)盛最多水的容器
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (二)hibernate配置管理
  • (南京观海微电子)——示波器使用介绍
  • (数据结构)顺序表的定义
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转)jQuery 基础
  • ******之网络***——物理***