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

leetcode hot 100 41. 缺失的第一个正数

代码

测试用例

测试用例

测试结果

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 没有出现。

提示:

  • 1 <= nums.length <= 105
  • -231 <= nums[i] <= 231 - 1
class Solution(object):def firstMissingPositive(self, nums):""":type nums: List[int]:rtype: int"""# 得到最大值,正数最小值# 不能排序,因为排序nlogn#  只能利用原本的数字存储了for i ,val in enumerate(nums):while nums[i]>0  and  nums[i]<=len(nums) and nums[i]!=i+1 and nums[nums[i]-1] != nums[i]:temp = nums[i]nums[i] = nums[temp-1]nums[temp-1] = tempfor i in range(len(nums)):if nums[i]!=i+1:return i+1return len(nums)+1

首先题目的要求是空间为常熟

所以不能使用hash表

那么我们只能用原本的数组去处理了

所以我们的方法是把符合条件的正整数也就是1-》len(nums)的数放到他的值减一的下标处,这样遍历一遍就知道少了哪个了。

需要考虑多种情况

1. 当你把一个数换过去之后,换回来的数还需要继续换,所以我们的for里面用while处理

2. 当你把数换过来之后可能那个地方本来就已经有一个数占据位置了,也就是[1,1]的情况,这样会导致死循环,所以你需要把这种情况当做看不见。因为放到原处,也是一个不合理值,反正要放到的地方已经有合理值了。

相关文章:

leetcode hot 100 41. 缺失的第一个正数

代码 测试用例 测试用例 测试结果 41. 缺失的第一个正数 已解答 困难 相关标签 相关企业 提示 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xf…...

UniApp 使用 u-loadmore 完整步骤

文章目录 一、前期准备1. 安装 uView - UI 二、使用 u-loadmore组件1. 创建页面2. 编写页面代码模板部分&#xff08;loadmore-demo.vue&#xff09;样式部分脚本部分 三、要点补充1. u-loadmore 状态说明2. 数据请求优化3. 性能优化4. 兼容性问题 在 UniApp 开发中&#xff0c…...

设置电脑一接通电源就主动开机

文章目录 1、进入BIOS2、设置4、功能弊端5、电脑自动开机的设置 1、进入BIOS 在电脑重启时&#xff0c;这时屏幕上会显示按XXX键到BIOS界面 没有进入BIOS提示的&#xff0c;按下面方法操作&#xff1a; 方法一 在开机显示logo的时候&#xff0c;立即按下面这几个按键&#xf…...

优艾智合机器人日本子公司成立,加速推进国际化布局

2月27日&#xff0c;工业移动机器人解决方案商优艾智合宣布日本子公司Youibot Robotics Japan株式会社&#xff08;以下简称“Youibot Japan”&#xff09;成立&#xff0c;并于东京举行开业典礼。此举标志着优艾智合在日本市场的现地服务能力进一步深化&#xff0c;是其全球化…...

自然语言处理NLP入门 -- 第七节预训练语言模型

1 什么是预训练模型&#xff1f; 在自然语言处理&#xff08;NLP&#xff09;里&#xff0c;训练一个好模型通常需要很多数据和计算资源。为了解决这个难题&#xff0c;就出现了“预训练模型”。 预训练模型 是指我们先在海量文本&#xff08;比如网络上爬到的大量文章、对话…...

Git GitHub基础

git是什么&#xff1f; Git是一个分布式版本控制系统&#xff0c;用于管理源代码的变更。它允许多个开发者在同一个项目上协作&#xff0c;同时跟踪每个修改的历史记录。 关键词&#xff1a; 分布式版本控制软件 软件 安装到我们电脑上的一个工具 版本控制 例如论文&…...

多平台文章同步工具PostSync 安装介绍

PostSync 是一个开源的用于多平台文章同步的工具 环境安装 安装 Python&#xff1a;PostSync 是基于 Python 开发的&#xff0c;你需要确保系统中已经安装了 Python 环境&#xff0c;建议使用 Python 3.7 及以上版本。你可以从 Python 官方网站 下载并安装适合你操作系统的版…...

PXE批量网络装机与Kickstart自动化安装工具

目录 一、系统装机的原理 1.1、系统装机方式 1.2、系统安装过程 二、PXE批量网络装机 2.1、PXE实现原理 2.2、搭建PXE实际案例 2.2.1、安装必要软件 2.2.2、搭建DHCP服务器 2.2.3、搭建TFTP服务器 2.2.4、挂载镜像并拷贝引导文件到tftp服务启动引导文件夹下 2.2.5、编…...

css的复合选择器

1.1什么是复合选择器 在css中&#xff0c;选择器分为基础选择器和复合选择器&#xff0c;复合选择器是建立在基础选择器之上&#xff0c;对基本选择器进行组合形成。 复合选择器可以更准确、更高效的选择目标元素(标签)由两个或多个基础选择器&#xff0c;通过不同的方式组合…...

Wireshark Lua 插件教程

本⽂主要介绍 Lua 脚本在 Wireshark 中的应⽤, Lua 脚本可以在 Wireshark 中完成如下功能: 从⽹络包中提取数据, 或者统计⼀些数据包(Dumper) 需要解析⼀种 Wireshark 不提供原⽣⽀持的协议(Dissector) ⽰例 协议解析 VREP 协议是 NOGD 框架对于 TRIP 协议的⼀种延伸和扩展…...

mysql怎样优化where like ‘%字符串%‘这种模糊匹配的慢sql

一 问题描述 工作中经常遇到这种模糊匹配的慢sql&#xff1a; select * from 表名 where 字段 like %字符串%; 由于前面有%&#xff0c;导致无法走该字段上的索引。 二 解决办法 ① 给该字段创建一个全文索引 CREATE FULLTEXT INDEX 索引名 ON 表名 (字段名); ② 改写sq…...

Python代码片段-断点任务

使用Python处理一堆长耗时任务的时候&#xff0c;为了防止异常退出程序或者手动退出程序后丢失任务进度&#xff0c;可用使用断点的方式记录任务进度&#xff0c;下次重载任务后&#xff0c;继续运行上次未完成的任务即可。 这里用json文件作为数据持久化的方式&#xff0c;免…...

mapbox基础,使用geojson加载heatmap热力图层

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️heatmap热力图层样式二、🍀使用geojs…...

03.检测 Zabbix agent

TOC 利用 zabbix_get 工具测试 Zabbix Agent 是否正常 # 安装 zabbix-get [rootUbuntu2204 ~]#apt install -y zabbix-get# 使用zabbix_get 工具查看验证 agent 是否正常 返回1表示正常 [rootUbuntu2204 ~]#zabbix_get -s 10.0.0.110 -p 10050 -k "agent.ping"故障…...

Vue 3 + Vite 项目配置访问地址到服务器某个文件夹的解决方案

前言 在开发 Vue 3 Vite 项目时&#xff0c;我们经常需要将项目部署到服务器的某个特定文件夹下。例如&#xff0c;将项目部署到 /my-folder/ 目录下&#xff0c;而不是服务器的根目录。这时&#xff0c;我们需要对 Vite 和 Vue Router 进行一些配置&#xff0c;以确保项目能…...

JavaScript将:;隔开的字符串转换为json格式。使用正则表达式匹配键值对,并构建对象。多用于解析cssText为style Object对象

// 使用正则表达式匹配键值对&#xff0c;并构建对象 let string2Json(s)>{const r {};s.replace(/&#xff1b;/g, ;).replace(/\;/g, \n).replace(/&#xff1a;/g, :).replace(/\n/g, \n)//合并多个换行符.split(\n).forEach(item > {const [k, v] item.split(:);(k…...

MT-Metrics

MT-Metrics 是一类用于评估生成文本质量的指标&#xff0c;最初用于机器翻译任务&#xff0c;后来扩展到生成任务&#xff08;如对话生成、文本摘要等&#xff09;。它的核心思想是通过比较生成文本与参考文本之间的相似性&#xff08;如词汇重叠、句法结构、语义相似性&#x…...

【数据结构第十六节】实现链式结构二叉树(详细递归图解—呕心沥血版!)

必须有为成功付出代价的决心&#xff0c;然后想办法付出这个代价。云边有个稻草人-CSDN博客 这节课挺抽象&#xff08;苦笑&#xff09;&#xff0c;没事&#xff0c;我会帮你&#xff01;干就完了&#xff01; &#xff08;目录在路上&#xff09; 正文开始—— 引言 用链表…...

【Python爬虫(100)】从当下到未来:Python爬虫技术的进阶之路

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取,还涉及数据处理与分析。无论是新手小白还是进阶开发…...

Vue-Flow绘制流程图(Vue3+ElementPlus+TS)简单案例

本文是vue3Elementplusts框架编写的简单可拖拽绘制案例。 1.效果图&#xff1a; 2.Index.vue主代码&#xff1a; <script lang"ts" setup> import { ref, markRaw } from "vue"; import {VueFlow,useVueFlow,MarkerType,type Node,type Edge } fro…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...