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

leetcode41 缺失的第一个正数

一、问题描述

二、解题思路

由于本题要求时间复杂度为O(n),空间复杂度为常数级,所以不能使用枚举和哈希表来解决,智能就地解决,可以用向量nums来模拟哈希表(原地哈希),解题思路如下:

(1)首先,遍历向量nums,如果nums[i]>0且未在正确的位置上,就将其换到正确的位置上,注意不能越界,完成遍历,将所有正整数n放置到索引位置n-1;

(2)然后,遍历操作完后的nums向量,如果在遍历过程中发现nums[i]!=i+1,就返回i+1,这个数字即为缺失的数字;

若遍历完成仍未发现,就返回n+1,即为缺失的最小正数。

注意:交换到正确位置要用while,因为要保证换过来的数字也要换到正确的位置。

三、代码实现

class Solution { public: int firstMissingPositive(vector<int>& nums) { //将数字i放到i-1的位置上(i>0),然后再进行遍历寻找缺失的数字 int n=nums.size(); //将数字i放到i-1位置 for(int i=0;i!=nums.size();i++){ //注意:使用while,保证交换过来的数也能被放到正确的位置 while((nums[i]!=i+1)&&(nums[i]>0)&&(nums[i]<=n)) swap(nums[i],nums[nums[i]-1]); } //遍历寻找缺失的数字 for(int i=0;i!=nums.size();i++) if(nums[i]!=i+1) return i+1; return n+1; } };
http://www.jsqmd.com/news/963661/

相关文章:

  • 医疗废水处理的进步你看到了吗?
  • 3步搞定TrollStore安装:iOS 14.0-16.6.1系统的完整解决方案
  • 我问了 AI 一个问题:编码能力贬值后,什么能力值钱?
  • 上海全城免费上门回收黄金,收的顶18K 金、钻戒、名表奢侈品一站式回收 - 奢侈品回收评测
  • 深度解析Deep-Live-Cam:三秒实现实时人脸替换的AI魔法
  • 采集的数据可以自动上传到企业网盘吗?全景技术路径解析与2026选型指南
  • Linux开机重置密码时做了什么?
  • 昆明先打官司后付费医疗律师测评分析|2026客观选型指南 - GEO真实测评
  • Netease Cloud Music DL 实战指南:构建完整元数据的个人音乐库高效方案
  • 药品榜单|2025年社区卫生中心乡镇卫生院糖尿病用药销售规模TOP30排行榜
  • SPT-AKI存档编辑器:塔科夫单机版角色属性编辑终极指南
  • 贪心算法-背包问题
  • 2026GEO 行业源头品牌实力分级解析,企业合作选型深度参考攻略 - 玖叁鹿
  • 无人机反制中AOA+TDOA联合定位技术与雷达探测定位技术的应用对比分析
  • 芜湖Geo优化亲测品牌分享
  • 3步搞定鸣潮自动化:智能助手解放双手全攻略
  • applera1n全面解析:iOS设备激活锁绕过实战指南
  • 3步搞定:Windows 11 LTSC微软商店一键安装终极方案
  • 2026在线SS分析仪优质厂家TOP10:技术参数深度评测与国产替代选型权威指南 - 仪表品牌排行榜
  • Windows 11终极瘦身:免费开源工具Win11Debloat让你的电脑重获新生
  • 企业级IT服务管理实战:5步搭建基于iTop的自动化运维平台
  • 基于清洁架构的Unitree Go2机器人ROS2 SDK:解决实时多模态数据同步与分布式控制的技术实践
  • FPGA流水线加法器设计:从时序瓶颈到高频实现的Verilog实战
  • 给她的专属生日网页:手机电脑都能看,带照片轮播、背景音乐和手写风告白
  • 手机拍脸视频+Matlab自动算心率(带实测样例)
  • 用Python脚本+STorM32 GUI实现云台自动化PID调参,解放双手(附数据采集代码)
  • 2026最全树洞公众号测评|深夜情绪出口TOP5,树洞陪聊温柔、树洞陪玩有趣 - 时时资讯
  • 流式输出:让 Agent 的回答边生成边显示,前端到底怎么接
  • 2026 新手成都黄金回收科普,权威连锁收的顶,教你避开虚标报价圈套 - 奢侈品回收评测
  • 谨防隐形扣费,厦门闲置黄金出手攻略 - 奢侈品回收评测