LeetCode21|主要元素
时间:2022-07-23
本文章向大家介绍LeetCode21|主要元素,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1,问题简述
数组中占比超过一半的元素称之为主要元素。
给定一个整数数组,找到它的主要元素。
若没有,返回-1。
2,示例
输入:[1,2,5,9,5,9,5,5,5]
输出:5
3,题解思路
键值对集合HashMap的使用
4,题解程序
import java.util.HashMap;
import java.util.Map;
public class MajorityElementTest {
public static void main(String[] args) {
int[] array = {1, 2, 5, 9, 5, 9, 5, 5, 5};
int majorityElement = majorityElement(array);
System.out.println("majorityElement = " + majorityElement);
}
public static int majorityElement(int[] nums) {
if (nums == null || nums.length == 0) {
return -1;
}
int length = nums.length;
HashMap<Integer, Integer> hashMap = new HashMap<>(length);
for (Integer num : nums
) {
if (hashMap.containsKey(num)) {
hashMap.put(num, hashMap.get(num) + 1);
} else {
hashMap.put(num, 1);
}
}
return hashMap.entrySet().stream().filter(entry -> entry.getValue() > length / 2).findFirst().map(Map.Entry::getKey).orElse(-1);
}
}
5,总结
这道题采用键值对集合的进行解决还是很常见的一种思路,算法题一直是自己喜欢的题,但是上学的时候自己javaAPI都不是很熟悉的我自然而然不会做这样的题,现在看现在的博客账号都开通好几年了,但是文章却一直没有发过,一直在吸收技术的路上,没有时间去输出,自从去年10月份时觉得有必要输出一些自己的东西了,才慢慢做到了今天,写这类题主要是为了磨平曾经自己缺少的技术,毕竟会总比不会要好一些,但是作用不是很大,主要看自己是否喜欢来了
- SpringMVC提交数据遭遇基础类型和日期类型报400错误解决方法
- 分布式监控系统Zabbix3.2对数据库的连接数预警
- 分布式监控系统Zabbix3.2监控数据库的连接数
- 分布式监控系统Zabbix3.2给异常添加邮件报警
- 分布式监控系统Zabbix3.2跳坑指南
- 一图看懂java内存模型
- 零代码如何打造自己的实时监控预警系统
- 一步一步在Windows中使用MyCat负载均衡 上篇
- 你真的会玩SQL吗?之逻辑查询处理阶段
- javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?
- 全面迎接.Net3.0时代的到来(WCF/WF/WPF/LINQ)
- SQL Server 2005 正则表达式使模式匹配和数据提取变得更容易
- [基础]datagridview绑定数据源的几种常见方式
- c#:winform鼠标拖动窗口大小时,设定窗口最小尺寸
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Goland中使用Golang命令行工具
- MHA搭建之ssh互信打通脚本
- pt-slave-restart工具
- 二叉树:层序遍历登场!
- 二叉树:前中后序迭代方式的写法就不能统一一下么?
- 二叉树:听说递归能做的,栈也能做!
- 二叉树:一入递归深似海,从此offer是路人
- 关于二叉树,你该了解这些!
- 双指针法:总结篇!
- 栈与队列:总结篇!
- Appium移动端自动化测试--元素操作与触摸动作【移动端自动化测试教程奉上】
- 接口测试Mock利器--moco runner是如何工作的?
- Java中类型判断的几种方式
- 如何实现类似@Component的Spring动态注入功能
- 一次代码优化实践,用了模板方法+策略+工厂方法模式