当前位置: 首页 > 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

相关文章:

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

缺失的第一个正数 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,0] 输出&#xff1a;3 解释&#xff1a;范围 [1,…...

基于CloudflareSpeedTest项目实现git clone加速

1.网络测速 「自选优选 IP」测试 Cloudflare CDN 延迟和速度&#xff0c;获取最快 IP 更多内容参考项目&#xff1a;https://github.com/XIU2/CloudflareSpeedTest 国外很多网站都在使用 Cloudflare CDN&#xff0c;但分配给中国内地访客的 IP 并不友好&#xff08;延迟高、丢…...

对与单纯post方法写项目的修改成baseservlet方法

解决的问题&#xff1a; 1.用baseservlet方法来写&#xff1a; 我之前没听明白gsa讲的那些&#xff0c;然后自己写了注册&#xff0c;用的post方法&#xff0c;就是那个叫我们最好不要用有点low的方法&#xff0c;后面与别人交流后发现是要用baseservlet来写&#xff0c;叫他…...

北京地铁换乘站人流量监控与图像识别技术优化

关于“北京地铁换乘站人流量监控与图像识别技术优化”&#xff0c;可以从以下几个方面进行详细阐述&#xff1a; 一、北京地铁换乘站人流量监控现状 北京地铁作为全国最繁忙的城市轨道交通系统之一&#xff0c;其换乘站的人流量监控是保障运营安全、提高运营效率的关键环节。…...

Day16_0.1基础学习MATLAB学习小技巧总结(16)——元胞数组

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍&#xff0c;为了在这个过程中加深印象&#xff0c;也为了能够有所足迹&#xff0c;我会把自己的学习总结发在专栏中&#xff0c;以便学习交流。 素材来源“数学建模清风” 特此说明&#xff1a;本博客的内容只在于总结在…...

C#自定义控件的放置与拖动

1、自定义控件 using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace PartA…...

python circular import python循环导入问题

遇到的问题是因为模块之间存在循环导入&#xff08;circular import&#xff09;&#xff0c;导致了ImportError。循环导入是指两个或多个模块相互导入对方&#xff0c;如模块A导入了模块B的方法&#xff0c;模块B又导入了模块A的方法&#xff0c;从而导致其中一个模块在完全初…...

kafka集群安装

kafka集群安装 文档 kafka单机安装 下载地址 官网&#xff1a;https://kafka.apache.org/最新版本下载页面&#xff1a;https://kafka.apache.org/downloads 说明 版本选择&#xff1a;3.0.0&#xff0c;kafka_2.12-3.0.0.tgz下载地址&#xff1a;https://archive.apache…...

SQL通用语法、SQL分类以及DDL

1.SQL 1.1SQL通用语法 1.SQL语句可以单行或多行书写&#xff0c;以分号结尾2.SQL语句可以使用空格/缩进来增强语句的可读性。3.MySQL数据库的SQL语句不区分大小写&#xff0c;关键字建议使用大写。4.注释&#xff1a; 单行注释&#xff1a;–空格 注释内容或#注释内容&#…...

静态链接和动态链接

静态链接和动态链接是两种将可执行文件与库进行链接的方式。它们的主要区别体现在链接时机、可执行文件的大小以及运行时的灵活性上。 1.静态链接 在静态链接中&#xff0c;所有需要的库&#xff08;例如 C 标准库 libc&#xff09;都会在编译时被复制并嵌入到最终的可执行文…...

构建智能门禁安防系统:树莓派 4B、OpenCV、SQLite 和 MQTT 的应用(代码示例)

一、项目概述 1.1 项目目标和用途 本项目旨在开发一个智能门禁安防系统&#xff0c;该系统利用摄像头和人脸识别技术&#xff0c;结合本地人脸库&#xff0c;实现对进出人员的自动识别和管理。系统能够实时记录进出人员的信息&#xff0c;并对未注册人员进行警报提示。通过与…...

基于 Konva 实现Web PPT 编辑器(二)

动画系统 为了实现演示中复杂的动画效果&#xff0c;使用 Animation 类统一管理&#xff1b;切换动画通过 css animation 实现&#xff0c;并且是应用在 konvajs-content 上&#xff0c;动画则通过 gsap 实现&#xff0c;应用在 Konva.Node 上&#xff0c;实现思路如下&#xf…...

【开源免费】基于SpringBoot+Vue.JS在线竞拍系统(JAVA毕业设计)

本文项目编号 T 013 &#xff0c;文末自助获取源码 \color{red}{T013&#xff0c;文末自助获取源码} T013&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…...

Qt TabWidget添加多个窗口,实现分页窗体布局

Qt TabWidget添加多个窗口窗体&#xff0c;可关闭与打开 点击按钮可判断是否打开&#xff0c;避免重复打开 使用Qt中的TabWidget组件创建一个简单的分页窗体布局。点击按钮时&#xff0c;会新增一个窗体并添加到TabWidget中。每个子窗体能动态获取父窗体指针以进行操作 分别…...

HarmonyOS开发实战( Beta5版)合理使用动画丢帧规范实践

本文列举了部分用于优化动画时延的正反案例&#xff0c;帮助开发者在遇到相似场景时进行优化&#xff0c;解决构建页面动画时遇到动画时延较长的问题。 减少动画丢帧 在播放动画或者生成动画时&#xff0c;画面产生停滞而导致帧率过低的现象&#xff0c;称为动画丢帧。 播放…...

基于BiLSTM-CRF的医学命名实体识别研究(下)模型构建

一.生成映射字典 接下来需要将每个汉字、边界、拼音、偏旁部首等映射成向量。所以&#xff0c;我们首先需要来构造字典&#xff0c;统计多少个不同的字、边界、拼音、偏旁部首等&#xff0c;然后再构建模型将不同的汉字、拼音等映射成不同的向量。 在prepare_data.py中自定义…...

5.sklearn-朴素贝叶斯算法、决策树、随机森林

文章目录 环境配置&#xff08;必看&#xff09;头文件引用1.朴素贝叶斯算法代码运行结果优缺点 2.决策树代码运行结果决策树可视化图片优缺点 3.随机森林代码RandomForestClassifier()运行结果总结 本章学习资源 环境配置&#xff08;必看&#xff09; Anaconda-创建虚拟环境…...

VMWARE VCENTER6.7 VCSA通过Web5480进行版本升级

VCENTER当前版本如下图 操作前先给VCENTER打一个快照&#xff0c;出问题可以立即回退 1、先下载VCSA镜像&#xff0c;并将VCSA镜像上传至DataStore中&#xff1b; 2、选中VCSA虚拟机&#xff0c;编辑配置 3、挂载新上传的VCSA镜像&#xff0c;一定要勾选“已连接”和“打开电源…...

GIT使用常见问题

如何安装Git&#xff1f; 在Windows操作系统中&#xff0c;可以从Git官方网站&#xff08;https://git-scm.com&#xff09;下载最新的Git安装程序&#xff0c;然后按照提示进行安装。在Mac操作系统中&#xff0c;可以使用Homebrew或者直接从Git官方网站下载安装程序进行安装。…...

内核链表

一、特点 灵活性 内核链表可以连接各种不同类型的数据结构&#xff0c;因为它只包含指向下一个和上一个节点的指针&#xff0c;不依赖特定的数据类型&#xff0c;这使得内核开发者可以根据不同的需求灵活地使用它。你可以将不同类型的结构体通过内核链表连接起来&#xff0c;实…...

C++复习录

1.命名空间 namespace nn{int a; } //名字空间指令 using namespace nn;//从这行代码开始,nn中的标识符在当前作用域可见(位于可见表)//名字空间声明 using nn::a;//从这行代码开始,nn中的a引入当前作用域(相当于定义,位于定义表) gcc/g++针对每个函数都和制作两张表,…...

如何打造终极纯净阅读体验:ReadCat免费开源小说阅读器完整指南

如何打造终极纯净阅读体验&#xff1a;ReadCat免费开源小说阅读器完整指南 【免费下载链接】read-cat 一款免费、开源、简洁、纯净、无广告的小说阅读器 项目地址: https://gitcode.com/gh_mirrors/re/read-cat 在数字阅读应用泛滥的今天&#xff0c;ReadCat免费开源小说…...

Windows安卓应用安装神器:APK Installer终极指南

Windows安卓应用安装神器&#xff1a;APK Installer终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 想在Windows电脑上直接运行安卓应用吗&#xff1f;厌倦了臃…...

MedSAM开源项目:医学图像分割的通用架构创新与实战应用

MedSAM开源项目&#xff1a;医学图像分割的通用架构创新与实战应用 【免费下载链接】MedSAM Segment Anything in Medical Images 项目地址: https://gitcode.com/gh_mirrors/me/MedSAM MedSAM&#xff08;Segment Anything in Medical Images&#xff09;是一个针对医学…...

JiYuTrainer深度解析:从技术基石到实战突破的极域电子教室控制方案

JiYuTrainer深度解析&#xff1a;从技术基石到实战突破的极域电子教室控制方案 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer JiYuTrainer作为一款专注于极域电子教室控制的开源…...

突破性解决方案:用cursor-free-vip开源工具解锁Cursor Pro功能的深度解析

突破性解决方案&#xff1a;用cursor-free-vip开源工具解锁Cursor Pro功能的深度解析 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youv…...

【读论文】2013 NP 自由空间光双向时间频率传递

法布里齐奥R乔治塔*、威廉C斯旺、劳拉C辛克莱尔、埃丝特鲍曼、伊恩科丁顿、内森R纽伯里* 美国国家标准与技术研究院&#xff0c;科罗拉多州博尔德市百老汇大街325号&#xff0c;80305 *电子邮箱&#xff1a;fabrizionist.gov&#xff1b;nnewburyboulder.nist.gov 本研究为美国…...

svgpath:突破SVG路径操控瓶颈的底层技术解密

svgpath&#xff1a;突破SVG路径操控瓶颈的底层技术解密 【免费下载链接】svgpath SVG path low level transformations toolkit 项目地址: https://gitcode.com/gh_mirrors/sv/svgpath 开篇&#xff1a;当动画遇到坐标迷宫 在开发交互式SVG图表时&#xff0c;你是否曾…...

SVG路径转换终极指南:svgpath让复杂图形操作变得简单

SVG路径转换终极指南&#xff1a;svgpath让复杂图形操作变得简单 【免费下载链接】svgpath SVG path low level transformations toolkit 项目地址: https://gitcode.com/gh_mirrors/sv/svgpath 你是否曾为SVG路径的复杂变换而头疼&#xff1f;svgpath是一个专门处理SVG…...

D3KeyHelper完全指南:从入门到精通的暗黑3技能自动化解决方案

D3KeyHelper完全指南&#xff1a;从入门到精通的暗黑3技能自动化解决方案 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面&#xff0c;可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper D3KeyHelper是一款专为暗黑…...