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

LeetCode 1133:最大唯一数

markdown复制

LeetCode 1133:最大唯一数

在编程的世界里,我们常常会遇到一些有趣的问题,今天就让我们一起来看看 LeetCode 上的第 1133 题——最大唯一数。

题目描述

给你一个整数数组 A,请找出并返回在该数组中仅出现一次的最大整数。如果不存在这个只出现一次的整数,则返回 -1。

示例

  • 示例 1

    • 输入:[5,7,3,9,4,9,8,3,1]
    • 输出:8
    • 解释:数组中最大的整数是 9,但它在数组中重复出现了。而第二大的整数是 8,它只出现了一次,所以答案是 8。
  • 示例 2

    • 输入:[9,9,8,8]
    • 输出:-1
    • 解释:数组中不存在仅出现一次的整数。

解题思路

为了解决这个问题,我们可以使用哈希映射来记录每个整数的出现次数。以下是详细的步骤:

  1. 初始化哈希映射和最大值:创建一个 HashMap,用于存储每个整数及其出现的次数,并初始化最大值 max 为 -1。
  2. 遍历输入数组:使用一个循环遍历数组 nums。
  3. 更新哈希映射:检查当前整数是否已经在哈希映射中。如果存在,则将其值更新为 2,表示该整数出现了多次;如果不存在,则将其值设为 1,表示该整数第一次出现。
  4. 查找最大唯一整数:再次遍历哈希映射的键集,检查每个整数的出现次数。如果某个整数的出现次数为 1,则更新 max 为该整数与当前 max 的较大值。
  5. 返回结果:返回 max,即数组中仅出现一次的最大整数。如果没有这样的整数,则返回 -1。

代码实现

package _1133;

import java.util.HashMap;

public class LeetCode1133 {
    public int largestUniqueNumber(int[] nums) {
        HashMap<Integer, Integer> set = new HashMap<Integer, Integer>();
        int max = -1;
        for (int i = 0; i < nums.length; i++) {
            if (set.keySet().contains(nums[i])) {
                set.put(nums[i], 2);
            } else {
                set.put(nums[i], 1);
            }
        }
        for (var in : set.keySet()) {
            if (set.get(in) == 1) {
                max = Math.max(max, in);
            }
        }
        return max;
    }
}
通过上述代码,我们就可以轻松地找到数组中仅出现一次的最大整数啦。希望这个解题思路对你有所帮助,如果你还有其他问题或更好的解法,欢迎在评论区留言交流哦!


<p data-source-line="59" class="empty-line final-line end-of-document" style="margin:0;"></p>

http://www.kler.cn/a/512980.html

相关文章:

  • 学习ASP.NET Core的身份认证(基于JwtBearer的身份认证8)
  • SDL2:Android APP编译使用 -- SDL2多媒体库使用音频实例
  • 成就与远见:2024年技术与思维的升华
  • Docker使用 使用Dockerfile来创建镜像
  • 力扣11-最后一个单词的长度
  • Java设计模式—观察者模式
  • 《A++ 敏捷开发》- 14 精益与敏捷
  • Hadoop 与 Spark:大数据处理的比较
  • MATLAB中while循环例子,for循环嵌套例子
  • 基于深度学习的Lidar 3D点云表面缺陷检测方法
  • 电脑未能成功安装设备驱动程序怎么办 几种有效修复方法
  • Ubuntu离线docker compose安装DataEase 2.10.4版本笔记
  • Maven下载配置
  • Maven 项目管理
  • 跨域cookie携带问题总结
  • Skywalking python agent安装配置
  • 【源码+文档+调试讲解】基于Spring Boot的协作会话平台
  • C++0到1面试点(二)
  • web-view环境下,H5页面打开其他小程序
  • Linux 如何使用parted进行磁盘分区?
  • HTML<img>标签
  • Qt Network编程之HTTP请求与处理
  • AI 之网:网络诈骗者的 “高科技伪装术”—— 智能诈骗的神秘面纱
  • jenkins-视图管理
  • TDengine 做 Apache SuperSet 数据源
  • 工业制造离不开的BOM