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

LeetCode 热题100-17 缺失的第一个正数

缺失的第一个正数

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

提示:

  • 1 <= nums.length <= 10e5
  • -2e31 <= nums[i] <= 2e31 - 1

可惜捏,只能想到用hashmap做个o(n)额外空间的做...(开辟空间了但是速度快hhh

class Solution:def firstMissingPositive(self, nums: List[int]) -> int:  # Me!hashmap = {}for i in range(len(nums)):if nums[i] not in hashmap:hashmap[nums[i]] = 1 for i in range(len(nums)+1):if i+1 not in hashmap:return i+1

想不到O n 1 的做法,看看大佬的做法吧,原地数组,将元素交换至(元素-1)下标的位置 

随后从头往后寻找对应不起来的位置,然后返回就好了

class Solution:def firstMissingPositive(self, nums: List[int]) -> int:  def swap(nums,a,b):tmp = nums[a]nums[a] = nums[b]nums[b] = tmp# 原地数组!nbfor i in range(len(nums)):while 1<=nums[i]<=len(nums) and nums[i]!=nums[nums[i]-1]:swap(nums,nums[i]-1,i)for i in range(len(nums)):if nums[i]!=i+1:return i+1return len(nums)+1

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • nodejs笔记
  • 聚观早报 | 淘宝将支持微信支付;董明珠支持招35岁员工
  • AE调试一些记录(1)
  • 探索NVIDIA RTX 4060 8G与RTX 3060 12G:性能与适用场景的深度解析
  • 从零开始,认识游戏设计师(3)体验源于设计师①
  • 苹果手机怎么设置铃声?3个方法教你制定个性化铃声
  • 鲁大师8月新机性能/流畅/AI/久用榜:新机节奏放缓,但不乏小惊喜
  • Linux malloc内存分配实现原理
  • 828华为云征文 | Flexus X实例与Harbor私有镜像仓库的完美结合
  • armbian cups 远程打印机 1022
  • 「OC」iOS事件处理流程
  • Vu3 跨组件通讯
  • ASPICE评估前的重要准备事项
  • 【 html+css 绚丽Loading 】000037 六合归一心
  • Oracle 和 PostgreSQL 常用数据类型的对比
  • 【391天】每日项目总结系列128(2018.03.03)
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • CSS中外联样式表代表的含义
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • 编写高质量JavaScript代码之并发
  • 分布式事物理论与实践
  • 理解在java “”i=i++;”所发生的事情
  • 我与Jetbrains的这些年
  • 移动端唤起键盘时取消position:fixed定位
  • 因为阿里,他们成了“杭漂”
  • 终端用户监控:真实用户监控还是模拟监控?
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 《天龙八部3D》Unity技术方案揭秘
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #pragma data_seg 共享数据区(转)
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (39)STM32——FLASH闪存
  • (bean配置类的注解开发)学习Spring的第十三天
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (游戏设计草稿) 《外卖员模拟器》 (3D 科幻 角色扮演 开放世界 AI VR)
  • (原)本想说脏话,奈何已放下
  • (转)重识new
  • .Net 8.0 新的变化
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET 设计一套高性能的弱事件机制
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .NET应用UI框架DevExpress XAF v24.1 - 可用性进一步增强
  • .NET中分布式服务
  • /3GB和/USERVA开关
  • /var/log/cvslog 太大
  • @SpringBootApplication 注解
  • @SuppressWarnings(unchecked)代码的作用
  • @开发者,一文搞懂什么是 C# 计时器!