首页 > 其他分享 >【力扣】-41. 缺失的第一个正数|刷题打卡-JS

【力扣】-41. 缺失的第一个正数|刷题打卡-JS

时间:2023-12-29 15:33:40浏览次数:24  
标签:return 示例 nums 41 length 数组 打卡 JS 缺失

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

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

示例 1:

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

示例 2:

输入:nums = [3,4,-1,1]
输出:2

示例 3:

输入:nums = [7,8,9,11,12]
输出:1

提示:

  • 1 <= nums.length <= 5 * 105
  • -231 <= nums[i] <= 231 - 1

思路:

  • 题目要求是找缺失的第一个正数,
  • 先取出数组中所有大于0的项
  • 按数组索引存入新数组中
  • 新数组中缺失的第一项即为解

代码:

var firstMissingPositive = function(nums) {
    if(nums.length === 0) return 1
    if(nums.length === 1 && nums[0] <= 0) return 1
    let arr = []
    nums.forEach((v) => {
        if(v >=1) {
            arr[v] = 1
        }
    })

    if(!arr.length) return 1

    for(let i = 1; i<arr.length; i++) {
        if(!arr[i]) {
            return i
        }
    }
    return arr.length
};

标签:return,示例,nums,41,length,数组,打卡,JS,缺失
From: https://blog.51cto.com/u_16101563/9028373

相关文章

  • 在 PyCharm 中编写 Vue 项目,你可以按照以下步骤进行: 1. **安装 Vue.js 插件**:在 PyCh
    在PyCharm中编写Vue项目,你可以按照以下步骤进行:1.**安装Vue.js插件**:在PyCharm中,选择`File->Settings…->Plugins`,搜索Vue并点击安装,安装后重启PyCharm¹²。2.**设置JavaScript**:支持Vue语法,选择`File->Settings…->Languages&Frameworks->JavaSc......
  • python json.dump 将字典写文件json文件后多了一个花括号"}",读取时报错:json.decoder.
    问题复现我的字典格式:importjsond={'Demo':{'Total_Result':'Pass','info':{'test3':'Pass'}},'10.0.0.111':{'Total_Result':'Pass','info':{'test......
  • js中三种URI编码方式比较
    一、实例比较数据传递常需要编码后传递,接收还需反编译,定义url:varurl="https://www.cnblogs.com/?username='小森森'&password='666666'";escape与unescapeconsole.log(escape(url));//编码console.log(unescape(escape(url)));//解码结果:https%3A//www.cnblog......
  • Windows环境检验NodeJs安装是否成功
    Windows环境检验NodeJs安装是否成功检验方法1、win+R打开运行窗口,在此窗口输入cmd命令编辑2、进入命令提示符窗口,分别输入以下命令,显示版本号,则安装成功node-v:显示安装的nodejs版本npm-v:显示安装的npm版本编辑如上图说明安装成功我本机的环境版本低一点因为是安装鸿蒙IDE自动安......
  • js 利用Audio播放文件列表
    1、主要利用Audio的监听事件addEventListener,监听到声音播放结束ended,播放下一个文件audio.addEventListener('ended',function(){console.log('音频播放结束');});2、示例:varvoiceList=['1.wav','2.wav','3.wav']varvoiceInde......
  • nodejs学习05——mongoose
    简介Mongoose是一个对象文档模型库,官网http://www.mongoosejs.net/作用:方便使用代码操作mongodb数据库初体验//1.安装mongoose//2.导入mongooseconstmongoose=require('mongoose');//设置strictQuery为truemongoose.set('strictQuery',true);//3.连接......
  • 「Java开发指南」如何用MyEclipse搭建JSF/Primefaces和Spring(二)
    本教程将引导大家完成为JavaServerFaces(JSF)生成软件组件的过程,在本文中您将学习到如何:从数据库表到现有项目搭建配置支持JSF2.0的服务器部署搭建的应用程序在上文中,我们介绍了如何创建一个Web项目、从数据库表搭建及配置服务器等,本文将继续介绍如何部署应用程序!更多MyE......
  • js里URL编码的不同方法和区别
    总结:1.escape/unescape这两个方法不能用于URL编码,但有很多人用,特此指出,因为它的真正作用是返回一个字符的Unicode编码值,不会对"+"进行编码,但是我们知道,网页在提交表单的时候,如果有空格,则会被转化为+字符。服务器处理数据的时候,会把+号处理成空格。2.encodeURI/decodeURI......
  • .net 6 post 接口传递json数据,接口实体对象反序列化导致一些可空字段报错 field is re
    1现象接口定义 swagger请求 正常来讲,string类型默认为null的2原因C#8.0引入了“可为空引用类型”和“不可为空引用类型”,使我们能够对引用类型变量的属性作出重要声明 3解决方法a)json对象的反序列化对象添加可空修饰符?b)全局配置//关闭不可为空引用类型......
  • js设计模式之工厂模式
    原型链实现letUserFactory=function(role){if(thisinstanceofUserFactory){lets=newthis[role]returns}else{returnnewUserFactory(role)}}UserFactory.prototype={SumperAdmin:function(){this.name="......