首页 > 编程语言 >leetcode——缺失的第一个整数(java)

leetcode——缺失的第一个整数(java)

时间:2025-01-23 12:30:37浏览次数:3  
标签:map java nums int 示例 HashSet 缺失 数组 leetcode

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。

请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。

示例 1:

输入:nums = [1,2,0]
输出:3
解释:范围 [1,2] 中的数字都在数组中。

示例 2:

输入:nums = [3,4,-1,1]
输出:2
解释:1 在数组中,但 2 没有。

示例 3:

输入:nums = [7,8,9,11,12]
输出:1
解释:最小的正数 1 没有出现。

解题方法:(哈希表)

1.经过对题目的分析,我们可以的出这道题可以使用HashSet来进行解题。

2.创建完HashSet之后,我们开始遍历数组,将元素添加进去。

3.最后从1开始遍历到数组的长度,将最小的整数返回即可。

class Solution {
    public int firstMissingPositive(int[] nums) {
        Set<Integer> map = new HashSet<>();
        int n = nums.length;
        for (int i = 0; i < n; i++) {
            map.add(nums[i]);
        }
        for (int i = 1; i <= n; i++) {
            if (map.contains(i)) {
                continue;
            } else {
                return i;
            }
        }
        return n + 1;
    }
}

标签:map,java,nums,int,示例,HashSet,缺失,数组,leetcode
From: https://blog.csdn.net/W_L_MM/article/details/145321334

相关文章

  • python-leetcode-随机链表的复制
    138.随机链表的复制-力扣(LeetCode)"""#DefinitionforaNode.classNode:def__init__(self,x:int,next:'Node'=None,random:'Node'=None):self.val=int(x)self.next=nextself.random=......
  • java基础Day6 java方法
    一、什么是方法?System.out.println()//System是一个类,out是一个对象,println()就是一个方法方法是语句的集合命名规则:首字母小写+驼峰命名规则Ex.加法Demo01//加法publicintadd(inta,intb){returna+b;}此时在main方法里直接调用不了,改为:p......
  • Web-Chains:Web 版 Java Payload 生成与利用工具
    免责声明本文所提供的文字和信息仅供学习和研究使用,请读者自觉遵守法律法规,不得利用本公众号所提供的信息从事任何违法活动。本文不对读者的任何违法行为承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。工具介绍Web-Chains项目,又名Java-Chains项目,我们站在巨人......
  • (附源码)基于Java的工艺品展示系统的设计与实现-计算机毕设 37411
    基于Java的工艺品展示系统的设计与实现摘要本论文主要论述了如何使用Java语言开发一个工艺品展示系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述工艺品展示系统的当前背景以及系统开发的目的,后续章......
  • LeetCode 221. 最大正方形
    问题描述解题思路动态规划定义状态:dp[i][j]表示矩阵中以(i,j)为右下角的最大正方形的边长。状态转移方程:如果matrix[i][j]为'1',则dp[i][j]=min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+1。初始化:第一行和第一列的dp值等于matrix中的对应值。遍历:从......
  • LeetCode 931. 下降路径最小和
    题目描述解题思路这个问题可以通过动态规划来解决。我们定义一个二维数组dp,其中dp[i][j]表示从第一行到第i行,且第i行选择第j列元素的最小路径和。我们可以从第一行开始,逐行计算dp数组的值。算法步骤初始化dp数组的第一行与matrix的第一行相同,因为第一行的......
  • 16 个 JavaScript 简写神技,提效 60%!
    今天看到一片文章觉得很适合在工作中常常用得到1.三元运算符简化条件判断//传统写法letresult;if(someCondition){result='yes';}else{result='no';}//简写方式constresult=someCondition?'yes':'no';2.空值合并运算符//传统写法cons......
  • 【Java开发】magic-api:一个Java接口快速开发框架
    今天给小伙伴们介绍一个Java接口快速开发框架-magic-api简介magic-api是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTPAPI接口开......
  • leetcode155.最小栈
    leetcode155.最小栈思路用两个栈,一个用来存本身,一个用来存最小值。代码#include<iostream>#include<memory>#include<stack>classMinStack{public:MinStack(){}voidpush(intval){_normal_stack.push(val);if(_min_stack.empty......
  • LeetCode 8. 字符串转换整数 (atoi)
    题目原题链接:LeetCode8.字符串转换整数(atoi)思路题目首先要判断空格。将前面的空格先一个个扣除。扣完空格记得判断是否到达字符串末尾。然后判断符号。用一个int存符号,正数为1,负数为-1。接下来题目又说前置零又说非数字字符又说数字,理一下思路,其实就是判断是否是数字,是......