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

leetcode41-缺失的第一个正数

leetcode 41
在这里插入图片描述

思路

最小正整数的范围: 如果数组的长度是 n,那么缺失的最小正整数一定是从 1 到 n+1 之间的某个数字。因为数组如果包含了所有从 1 到 n 的数字,那么缺失的最小正整数就是 n + 1

  • 例如,如果数组 [1, 2, 3],缺失的最小正整数是 4;如果数组 [3, -1, 2, 1],缺失的最小正整数是 4

所以我们可以考虑到从1到n+1之间的每个数去遍历,看看数组中是否出现这个数,只要数组中没出现过,那说明当前这个数是最小正整数
如果通过数组的includes方法来查找,时间复杂度是O(n2),题目要求使用O(n)的复杂度来完成本题
那么可以牺牲空间来节省时间,我们知道set够在常数时间 O(1) 内检查某个数字是否存在

  • 从 1 开始,逐一检查 Set 中是否存在每个正整数。如果某个整数不存在于 Set 中,则返回它,因为它就是缺失的最小正整数

实现

var firstMissingPositive = function (nums) {const len = nums.length;const set = new Set(nums);for(let i = 1;i <= len+1;i++){if(!set.has(i)){return i}}
};
http://www.xdnf.cn/news/13043.html

相关文章:

  • java复习 06
  • 写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
  • 今日行情明日机会——20250609
  • AT模式下的全局锁冲突如何解决?
  • 【大厂机试题解法笔记】报文响应时间
  • 理解大端与小端字节序——原理、实践与网络编程
  • 发立得信息发布系统房屋信息版(php+mysql)V1.0版
  • 在Ubuntu24上采用Wine打开SourceInsight
  • 什么时候用GraphRAG?RAG VS GraphRAG综合分析
  • 算法—栈系列
  • 什么是RPA机器人?详解RPA机器人:诞生背景、核心定义、工作原理、行业应用、国产代表与未来趋势
  • 《信号与系统》第 6 章 信号与系统的时域和频域特性
  • 视图去水印软件:告别水印烦恼,让素材焕然一新
  • 专业文件比对辅助软件
  • 2025年八大员(标准员)考试题库及答案
  • 从零手写Java版本的LSM Tree (八):LSM Tree 主程序实现
  • MySQL的pymysql操作
  • Vue.js教学第二十一章:vue实战项目二,个人博客搭建
  • 通过ESP32开发板,实现NFC卡片控制继电器通断,从而实现多种物联网中设备的通电
  • 企业数据孤立的常见表现及解决方法
  • 基于算法竞赛的c++编程(25)指针简单介绍和简单应用
  • sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
  • Q1起重机指挥理论备考要点分析
  • 内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献
  • 基于物联网技术设计的设计室内宠物监护系统
  • switch语句解析
  • Python训练打卡Day45
  • 2 Studying《Android源代码情景分析(罗升阳)》
  • WebRTC调研
  • 门静脉高压——表现