Javascript每天一道算法题(十七)——缺失的第一个正整数_困难
文章目录
- 前言
- 1、问题
- 2、示例
- 3、解决方法
- (1)方法1
- 总结
前言
提示:
1、问题
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。
请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。
看了很久示例才看明白说了啥。
首先正整数说大于0的数字,如1、2、3、4、5…
如示例1 [0,1,2]. 返回3 因为1,2数组中有了,所以最小的为3
示例2[-1,1,3,4] 返回2。因为1和3 之间没有2,2就是那个丢失的第一个正整数
示例3 [7,8,9,11,12] 因为没有正整数1,所以1就是那个丢失的第一个正整数
2、示例
示例 1:
输入:nums = [1,2,0]
输出:3
示例 2:
输入:nums = [3,4,-1,1]
输出:2
示例 3:
输入:nums = [7,8,9,11,12]
输出:1
3、解决方法
(1)方法1
let nums = [3,4,-1,1]
var firstMissingPositive = function(nums) {let min = 1; // 1:定义一个可能返回的最小正整数nums.sort((a,b) => a-b) // 2: 排序let newArray = [] // 3: 定义一个接收正整数的数组// 4:第一次遍历:nums.forEach((item, index) => {// 4: 将数组中大于等于1 并且 小于数组长度的值 存入新数组// 如示例二新数组为[1, empty, 3]if(item >= 1 && nums[index] < nums.length){newArray[nums[index] - 1] = nums[index]}});console.log('zzz', nums, newArray);// 5:第二次遍历:检查下标是否喝值相对应(下标+1 === 当前下标的值)for(let i=0;i<newArray.length;i++){// 5-1:如果不等于说明当前下标+1就是缺少正整数的值if(newArray[i] != i + 1){min = i + 1break;} else {// 5-2:如果都符合条件,就如示例一中[1,2]都符合条件,所以最小的值就是当前下标+1 + 1// 下标是从0开始的,当前值下标为 i+ 1(包括最后一个值),比最后一个值下标还大的就是i+2了// 如示例[1,2]中2的下标为1,要等于这个值就是下标+1,要大于这个值就是下标+2// 为什么不直接使用当前item的值呢?由于是用下标插入的,所以item的值可以为 emptymin = i + 2}}console.log('mew', min); // 6:返回缺失的最小正整数
};
firstMissingPositive(nums)
总结
(1)难度: 困难
(2)思路:遍历一次数组把大于等于1的和小于数组长度大小的值放到新数组(newArray)对应位置,然后再遍历一次数组查当前下标是否和值对应,如果不对应那这个下标+1就是答案,否则遍历完都没出现那么答案就是当前下标加2。
(3)注意点:为什么要下标+1和+2在第五步有详细说明
相关文章:
Javascript每天一道算法题(十七)——缺失的第一个正整数_困难
文章目录 前言1、问题2、示例3、解决方法(1)方法1 总结 前言 提示: 1、问题 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 看了很久…...
【React】路径别名配置
路径解析配置(webpack),把 / 解析为 src/路径联想配置(VsCode),VSCode 在输入 / 时,自动联想出来对应的 src/下的子级目录 1. 路径解析配置 安装craco npm i -D craco/craco项目根目录下创建配…...
前缀和——238. 除自身以外数组的乘积
文章目录 🍷1. 题目🍸2. 算法原理🍥解法一:暴力求解🍥解法二:前缀和(积) 🍹3. 代码实现 🍷1. 题目 题目链接:238. 除自身以外数组的乘积 - 力扣&a…...
MySql数据库常用指令(二)
MySql数据库常用指令(二) 一、WHERE 子句二、UPDATE 更新三、DELETE 语句四、LIKE 子句五、UNION 操作符 注:文中TEST为测试所用数据库,根据实际应用修改 一、WHERE 子句 SELECT 语句使用 WHERE 子句从数据表中读取数据…...
zookeeper 单机伪集群搭建简单记录
1、官方下载加压后,根目录下新建data和log目录,然后分别拷贝两份,分别放到D盘,E盘,F盘 2、data目录下面新建myid文件,文件内容分别为1,2,3.注意文件没有后缀,不能是txt文…...
【Linux】匿名管道与命名管道,进程池的简易实现
文章目录 前言一、匿名管道1.管道原理2.管道的四种情况3.管道的特点 二、命名管道1. 特点2.创建命名管道1.在命令行上2.在程序中 3.一个程序执行打开管道并不会真正打卡 三、进程池简易实现1.makefile2.Task.hpp3.ProcessPool.cpp 前言 一、匿名管道 #include <unistd.h&g…...
HTML5+ API 爬坑记录
背景: 有个比较早些使用5开发的项目, 最近两天反馈了一些问题, 解决过程在此记录; 坑1: plus.gallery.pick 选择图片没有进入回调 HTML5 API Reference 在 联想小新 平板电脑上选择相册图片进行上传时, 打开相册瞬间 应用会自动重启, 相册倒是有打开, 不过应用重启了, 导…...
idea git将某个分支内的commit合并到其他分支
idea git将某个分支内的commit合并到其他分支 1.打开旧分支的代码提交记录 在IDEA中切换到新分支的代码,点击Git打开代码管理面板,在顶部点击Log:标签页(这个标签页内将来可以选择不同分支的个人/所有人的代码commit记录)&#x…...
Google hacking语法
Google hacking语法 文章目录 Google hacking语法site:inurl:intitle:filetypecacheintext注意 site: 搜索子域 跟域名site:www.baidu.com 定位 跟语言 site: jp inurl: 用于在特定url链接中搜索网站信息 inurl:login intitle: 使用intitle:指令返回页面标题中包含关键…...
Redis集群(新)
1.什么是集群 Redis集群实现了对Redis的水平扩容,可实现并发写操作,启动n个redis节点,将数据分别存储在不同的节点中,每块节点负责不同区域的插槽,所以Redis集群通过分区来提供一定程度的可用性。 Redis集群现采用的是…...
[JVM] 常用调优参数
随着Java应用程序的不断发展和优化,JVM调优已经变得越来越重要。在这篇文章中,我们将探讨一些常用的JVM调优参数,了解如何更好地优化Java应用程序的性能。 文章目录 1. -Xmx2. -Xms3. -XX:PermSize和-XX:MaxPermSize4. -XX:NewRatio5. -XX:Ma…...
【nlp】3.5 Transformer论文复现:3.解码器部分(解码器层)和4.输出部分(线性层、softmax层)
Transformer论文复现:3.解码器部分(解码器层)和4.输出部分(线性层、softmax层) 3.1 解码器介绍3.2 解码器层3.2.1 解码器层的作用3.2.2 解码器层的代码实现3.2.3 解码器层总结3.3 解码器3.3.1 解码器的作用3.3.2 解码器的代码实现3.3.3 解码器总结4.1 输出部分介绍4.2 线性…...
宝塔 Linux 面板安装一个高大上的论坛程序 —— Flarum
这个是很早搭建的版本,基于宝塔面板,比较复杂,如果想要简单的搭建方法,可以参看咕咕新写的这篇: 【好玩的 Docker 项目】10 分钟搭建一个高大上的论坛程序 购买腾讯云轻量应用服务器 待补充 登录服务器 待补充 BBR 加速脚本 BBR 加速脚本: BASH cd /usr/src &…...
数字化转型如何赋能企业实现数字化增值?
随着科技的不断发展,数字化转型已经成为了企业营销的重要趋势。数字化转型不仅可以提高企业的运营效率,还可以更好地满足消费者的需求,提升企业的市场竞争力。 一、数字化转型可以提高企业营销的精准性 在传统的企业营销中,营销人…...
深度学习之九(Transformers)
Transformers 是一种用于处理序列数据的深度学习模型,特别擅长于自然语言处理(NLP)任务。Transformer 是一种基于自注意力机制(Self-Attention Mechanism)的架构,于2017年由 Vaswani 等人在 “Attention is All You Need” 论文中提出,它在机器翻译任务中取得了显著的性…...
pgz easyexcel如何给excel文件添加自定义属性
免费API方式 直接上传URL,自定义修改Excel 视频演示【内含接口地址】 https://www.ixigua.com/7304510132812153385 前情提示 | 功能说明 多选仅支持微软office、office365系列Excel。因为WPS宏功能需要企业版且付费生成xlsx、xlsm等文件,office和WPS均可以打开,均可以单…...
【unity实战】实现一个放置3d物品建造装修系统(附项目源码)
文章目录 最终效果前言绘制开始场景素材开始放置旋转物体扩展优化1. 绘制地图边界,确保放置物品在指定区域内工作2. 让模型所占面积大小更加准确3. 隐藏白色瓦片指示区域 最终效果其他源码参考完结 最终效果 前言 其实3d物品建造装修系统之前就已经做过了ÿ…...
计算机网络之应用层
一、概述 引入目的: 为了方便用户去使用; 该如何方便用户使用网络呢,即怎样帮助用户使用网络? 1.用户需要知道网络资源所在的位置 2.网络上资源一定是在资源子网的主机上 3.资源子网上的主机,在通信子网中用IP地…...
Let’s xrOS 一款让你优先体验社区创作者的 visionOS App工具
Let’s xrOS Apple Vision Pro 发布预示着空间计算时代的到来,让科技爱好者和开发者开始思考如何在新的交互、系统和硬件上打造独特的三维应用。 自 WWDC 2023 的发布会后,社交媒体上涌现了许多精美的 visionOS App 的效果图和演示视频,然而…...
武汉教育E卡通学生证照片尺寸要求及证件照集中采集方法
”武汉教育E卡通“电子学生证旨在数字化中小学生身份,提供通用的教育卡,实现身份认证的电子化、权威化和集成化。校内一卡通系统包括刷卡考勤、电子班牌、图书借阅等,全面记录学生在校业务。同时,采集社会通行、实践活动等数据&am…...
LattePanda打造Steam Machine:硬件选型与系统优化指南
1. 从零打造一台LattePanda驱动的Steam Machine去年Valve宣布推迟新一代Steam Machine发布时,作为一名硬件改装爱好者,我决定自己动手复刻这个经典设备。经过三个月的设计和调试,这台基于LattePanda单板机的IOTA版本不仅完美运行Bazzite系统&…...
终极指南:如何一键恢复B站经典界面,重温小电视播放器的美好时代
终极指南:如何一键恢复B站经典界面,重温小电视播放器的美好时代 【免费下载链接】Bilibili-Old 恢复旧版Bilibili页面,为了那些念旧的人。 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-Old 你是否怀念那个简洁明了的B站界面…...
Arduino UNO变身迷你信号发生器:基于MCP4725 DAC的正弦波/三角波生成全攻略
Arduino UNO与MCP4725 DAC打造迷你信号发生器实战指南 在电子制作和音频实验领域,信号发生器是不可或缺的基础工具。传统台式信号发生器虽然功能强大,但价格昂贵且体积庞大。本文将展示如何用Arduino UNO搭配MCP4725 DAC模块,打造一个成本不到…...
Python开启AI之门:07 卷积神经网络:机器如何看世界
07 卷积神经网络:机器如何看世界 咱们继续这个《Python开启AI之门》系列,上篇聊了训练过程像健身房,这次咱们来聊聊卷积神经网络(CNN)——机器怎么“看”世界。别慌,咱们闲聊着来,边说边动手,幽默藏在那些小细节里,保证读着舒服,像在樱花树下喝茶聊天。 卷积神经网络…...
终极指南:如何在Kubernetes中部署NSwag实现容器化API文档服务
终极指南:如何在Kubernetes中部署NSwag实现容器化API文档服务 【免费下载链接】NSwag The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript. 项目地址: https://gitcode.com/gh_mirrors/ns/NSwag NSwag是.NET、ASP.NET Core和TypeScript的…...
【EF Core 10向量搜索企业落地白皮书】:20年微软MVP亲授高并发、低延迟、可审计的向量检索架构设计
第一章:EF Core 10向量搜索扩展的企业级定位与演进全景EF Core 10 向量搜索扩展并非孤立的功能补丁,而是微软在 AI 原生数据访问层战略中的一次关键跃迁。它将传统 ORM 的关系建模能力与现代向量数据库的语义检索能力深度融合,使企业能在统一…...
VCS仿真中用好断言debug选项,让你的验证效率翻倍(附避坑指南)
VCS仿真中高效断言调试的进阶技巧与实战指南 在复杂SoC验证环境中,断言(Assertion)作为设计意图的"活文档",其调试效率直接影响项目周期。本文将从VCS仿真器的编译选项配置、断言控制文件编写技巧、波形分析策略三个维度…...
光伏逆变器资料 8-10KW 5-8KW古瑞瓦特光伏逆变器电 路图、光伏逆变器资料
光伏逆变器资料 8-10KW 5-8KW古瑞瓦特光伏逆变器电 路图、光伏逆变器资料 古瑞瓦特的5-10KW资料逆变器带程序光伏逆变器资料 8-10KW 5-8KW古瑞瓦特光伏逆变器电 路图、光伏逆变器资料 古瑞瓦特的5-10KW资料逆变器带程序 古瑞瓦特逆变器资料,古瑞瓦特光并…...
终极城通网盘解析工具:如何高效获取直连下载地址的完整指南
终极城通网盘解析工具:如何高效获取直连下载地址的完整指南 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘下载速度慢如蜗牛而烦恼吗?你是否曾经面对几个G的文件…...
BGE Reranker-v2-m3效果实测:在低资源方言查询(如粤语书面语)中保持83%+匹配准确率
BGE Reranker-v2-m3效果实测:在低资源方言查询(如粤语书面语)中保持83%匹配准确率 1. 引言:方言查询的匹配挑战 在日常信息检索中,我们经常遇到一个棘手问题:当用户使用方言或地区性语言进行查询时&#…...
