41.缺失的第一个正数

·题目描述

给你一个未排序的整数数组 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 没有出现。

·解题思路——要求时间复杂度O(n),空间复杂度O(1)

1.我们所需要排查的数字范围为[1,len(nums)]。

2.利用数字和下标的关系。将数字大小-1与下标位置相对应。因此需要交换位置。满足交换条件的数字大小为,在所需要范围内、与坐标不对应因此需要交换。

3.时间复杂度在交换时候的优化。涉及到两个数字的交换,有可能出现一个是满足坐标要求,而另外一个不满足,因此判断条件涉及两个

4.再次遍历。如果交换完还是不符合坐标数字要求,则返回缺失。

·代码


class Solution(object):def firstMissingPositive(self, nums):n = len(nums)for i in range(n):while nums[i] != i + 1 and 0<= nums[i]< n and nums[nums[i]- 1] != nums[i]:nums[nums[i] - 1],nums[i]  =nums[i], nums[nums[i] - 1]for i in range(n):if (i + 1) != nums[i]:return i + 1return n+1

————只涉及两个循环————

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/823664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

clipper一些数据结构(入门初识(一))

clipper一些数据结构&#xff08;一&#xff09; Clipper库是一个用于执行多边形裁剪&#xff08;clipping&#xff09;和偏移&#xff08;offsetting&#xff09;操作的开源C库。在Clipper库中&#xff0c;点和多边形&#xff08;polygon&#xff09;是基本的数据结构。Clipp…

Spring-tx事务管理

第五章 Spring声明式事务 一 声明式事务概念 1.1 编程式事务 手动编写程序来管理事务&#xff0c;即通过编写代码的方式来实现事务的提交&#xff0c;和回滚。 1.2 声明式事务 声明式事务是指使用注解或配置文件来控制事务的提交和回滚。 开发者只需要添加注解或者配置文…

陇剑杯 流量分析 webshell CTF writeup

陇剑杯 流量分析 链接&#xff1a;https://pan.baidu.com/s/1KSSXOVNPC5hu_Mf60uKM2A?pwdhaek 提取码&#xff1a;haek目录结构 LearnCTF ├───LogAnalize │ ├───linux简单日志分析 │ │ linux-log_2.zip │ │ │ ├───misc日志分析 │ │ …

[SWPUCTF 2021 新生赛]error

如果 flag 只出现一半&#xff0c;用substr(A,B,C) 查询flag 1 and (select extractvalue(1,concat(~,(select substr((select flag from test_tb), 1 , 31))))) # 0-30位 左边30位 1and (select extractvalue(1,concat(~,(select substr((select flag from test_tb), 31 , 6…

vivado 设置 VIO 核以执行测量、查看 VIO 核状态

设置 VIO 核以执行测量 您添加到自己的设计中的 VIO 核会显示在“硬件 (Hardware) ”窗口中的目标器件下。如果未显示这些 VIO 核 &#xff0c; 请右键 单击器件并选择“ Refresh Hardware ”。这样将重新扫描 FPGA 或 ACAP 并刷新“ Hardware ”窗口。 注释 &#xff…

阿里云4核8G云服务器价格多少钱?700元1年

阿里云4核8G云服务器价格多少钱&#xff1f;700元1年。阿里云4核8G服务器租用优惠价格700元1年&#xff0c;配置为ECS通用算力型u1实例&#xff08;ecs.u1-c1m2.xlarge&#xff09;4核8G配置、1M到3M带宽可选、ESSD Entry系统盘20G到40G可选&#xff0c;CPU采用Intel(R) Xeon(R…

Java面试必问题41:SpringCloud五大组件是哪几个 SpringCloud 和 SpringBoot 的区别和关系

SpringCloud五大组件是哪几个 Spring Cloud是一个用于构建分布式系统的开发工具包&#xff0c;它提供了一系列组件来简化分布式系统的开发和管理。以下是Spring Cloud中的五个核心组件&#xff1a; 1. 服务注册与发现&#xff08;Eureka&#xff09;&#xff1a;Eureka是一个用…

【AcWing】蓝桥杯集训每日一题Day28|组合计数|二项式定理|杨辉三角|211.计算系数(C++)

211.计算系数 211. 计算系数 - AcWing题库难度&#xff1a;简单时/空限制&#xff1a;1s / 64MB总通过数&#xff1a;3703总尝试数&#xff1a;7790来源&#xff1a;《算法竞赛进阶指南》NOIP2011提高组算法标签二项式定理组合计数 题目内容 给定一个多项式 ( a x b y ) k …

Eigen库从入门到放弃(1. VSCode配置及Eigen下载和安装)

最近在做后处理的事情。每次看到Python那么酷炫的切片、矩阵乘法、广播&#xff0c;再看看C&#xff0c;我就陷入无尽痛苦。为什么Numpy没有C版本&#xff0c;为什么后处理都是手撸&#xff0c;Eigen库有很多方法可以平替Numpy&#xff0c;但是我不是很了解&#xff0c;都是现查…

久吾高科技股份有限将莅临2024第13届生物发酵展

参展企业介绍 江苏久吾高科技股份有限公司成立于1997年&#xff0c;是一家专注从事新材料研发与整体解决方案的高科技企业。2017年3月在深交所A股创业板上市。公司是首批认定的guojiaji高新技术企业、国家专精特新“小巨人”企业、国家制造业单项、中国膜行业陶瓷膜领域龙头企…

使用vite从头搭建一个vue3项目(三)vite.config.js配置

目录 一、声明环境变量配置文件二、vite.config.js基础配置1、defineConfig()、loadEnv()2、plugins配置项3、server配置项4、resolve配置项5、css配置项6、build配置项 三、vite.config.js配置完整代码 VITE版本&#xff1a;v5.2.8 一、声明环境变量配置文件 在根目录下新建…

pta L1-045 宇宙无敌大招呼

L1-045 宇宙无敌大招呼 分数 5 全屏浏览 切换布局 作者 陈越 单位 浙江大学 据说所有程序员学习的第一个程序都是在屏幕上输出一句“Hello World”&#xff0c;跟这个世界打个招呼。作为天梯赛中的程序员&#xff0c;你写的程序得高级一点&#xff0c;要能跟任意指定的星球…

Qt 系统相关

这里写目录标题 Qt 事件事件介绍事件的处理按键事件单个按键组合按键 ⿏标事件⿏标单击事件⿏标释放事件⿏标双击事件⿏标移动事件滚轮事件 定时器QTimerEvent 类QTimer 类获取系统⽇期及时间 事件分发器概述事件分发器⼯作原理 事件过滤器 Qt ⽂件Qt ⽂件概述输⼊输出设备类⽂…

GPT国内怎么用?4月最新版本来了

ChatGPT镜像 今天在知乎看到一个问题&#xff1a;“平民不参与内测的话没有账号还有机会使用ChatGPT吗&#xff1f;” 从去年GPT大火到现在&#xff0c;关于GPT的消息铺天盖地&#xff0c;真要有心想要去用&#xff0c;途径很多&#xff0c;别的不说&#xff0c;国内GPT的镜像…

HarmonyOS开发实例:【任务延时调度】

介绍 本示例使用[ohos.WorkSchedulerExtensionAbility] 、[ohos.net.http]、[ohos.notification] 、[ohos.bundle]、[ohos.fileio] 等接口&#xff0c;实现了设置后台任务、下载更新包 、保存更新包、发送通知 、安装更新包实现升级的功能。 效果预览 使用说明 安装本应用之…

数字乡村探索:引领农村未来发展新方向——科技创新赋能乡村现代化与农民生活品质提升之旅

目录 一、数字乡村的内涵与特点 二、数字乡村的探索进展 三、数字乡村面临的挑战与机遇 四、数字乡村的未来发展方向与路径 五、数字乡村助力农村产业升级 六、数字乡村促进城乡融合发展 七、数字乡村激发农民创新创业活力 八、数字乡村提升农民获得感和幸福感 九、展…

Postman还能做Mock?又学了一招!

1、什么是mock测试 Mock 测试就是在测试活动中&#xff0c;对于某些不容易构造或者不容易获取的数据/场景&#xff0c;用一个Mock对象来创建以便测试的测试方法。 2、Mock测试常见场景 无法控制第三方系统接口的返回&#xff0c;返回的数据不满足要求 依赖的接口还未开发完成…

批量压缩文件并设置独立解压密码

步骤 下面是一个使用批处理脚本来压缩每个文件的基本脚本。此脚本假设所有文件都在同一个目录中&#xff0c;并且你希望每个文件使用不同的密码进行压缩。 1. 创建一个批处理脚本 你可以使用文本编辑器&#xff08;如Notepad或者Windows自带的记事本&#xff09;来创建一个批…

Scala 02——Scala OOP

文章目录 Scala 02——Scala OOP前序类1. 类的基本结构2. 普通类和数据类的区别 继承1. extends2. override 抽象类抽象类的特点 单例对象1. 定义2. 场景3. 方法3.1 方法定义3.2 方法调用 特质1. 抽象类和特质的区别2. 强制混入语法3. 静态混入和动态混入 内部类Java和Scala内部…

springCloud-Feign 拦截器使用,传递header中的值

场景&#xff1a;服务A 调用 服务B 1 编写拦载器类 import feign.RequestInterceptor; import feign.RequestTemplate; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; i…