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 ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3 解释:范围 [1,…...
基于CloudflareSpeedTest项目实现git clone加速
1.网络测速 「自选优选 IP」测试 Cloudflare CDN 延迟和速度,获取最快 IP 更多内容参考项目:https://github.com/XIU2/CloudflareSpeedTest 国外很多网站都在使用 Cloudflare CDN,但分配给中国内地访客的 IP 并不友好(延迟高、丢…...
对与单纯post方法写项目的修改成baseservlet方法
解决的问题: 1.用baseservlet方法来写: 我之前没听明白gsa讲的那些,然后自己写了注册,用的post方法,就是那个叫我们最好不要用有点low的方法,后面与别人交流后发现是要用baseservlet来写,叫他…...
北京地铁换乘站人流量监控与图像识别技术优化
关于“北京地铁换乘站人流量监控与图像识别技术优化”,可以从以下几个方面进行详细阐述: 一、北京地铁换乘站人流量监控现状 北京地铁作为全国最繁忙的城市轨道交通系统之一,其换乘站的人流量监控是保障运营安全、提高运营效率的关键环节。…...
Day16_0.1基础学习MATLAB学习小技巧总结(16)——元胞数组
利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。 素材来源“数学建模清风” 特此说明:本博客的内容只在于总结在…...
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循环导入问题
遇到的问题是因为模块之间存在循环导入(circular import),导致了ImportError。循环导入是指两个或多个模块相互导入对方,如模块A导入了模块B的方法,模块B又导入了模块A的方法,从而导致其中一个模块在完全初…...
kafka集群安装
kafka集群安装 文档 kafka单机安装 下载地址 官网:https://kafka.apache.org/最新版本下载页面:https://kafka.apache.org/downloads 说明 版本选择:3.0.0,kafka_2.12-3.0.0.tgz下载地址:https://archive.apache…...
SQL通用语法、SQL分类以及DDL
1.SQL 1.1SQL通用语法 1.SQL语句可以单行或多行书写,以分号结尾2.SQL语句可以使用空格/缩进来增强语句的可读性。3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。4.注释: 单行注释:–空格 注释内容或#注释内容&#…...
静态链接和动态链接
静态链接和动态链接是两种将可执行文件与库进行链接的方式。它们的主要区别体现在链接时机、可执行文件的大小以及运行时的灵活性上。 1.静态链接 在静态链接中,所有需要的库(例如 C 标准库 libc)都会在编译时被复制并嵌入到最终的可执行文…...
构建智能门禁安防系统:树莓派 4B、OpenCV、SQLite 和 MQTT 的应用(代码示例)
一、项目概述 1.1 项目目标和用途 本项目旨在开发一个智能门禁安防系统,该系统利用摄像头和人脸识别技术,结合本地人脸库,实现对进出人员的自动识别和管理。系统能够实时记录进出人员的信息,并对未注册人员进行警报提示。通过与…...
基于 Konva 实现Web PPT 编辑器(二)
动画系统 为了实现演示中复杂的动画效果,使用 Animation 类统一管理;切换动画通过 css animation 实现,并且是应用在 konvajs-content 上,动画则通过 gsap 实现,应用在 Konva.Node 上,实现思路如下…...
【开源免费】基于SpringBoot+Vue.JS在线竞拍系统(JAVA毕业设计)
本文项目编号 T 013 ,文末自助获取源码 \color{red}{T013,文末自助获取源码} T013,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…...
Qt TabWidget添加多个窗口,实现分页窗体布局
Qt TabWidget添加多个窗口窗体,可关闭与打开 点击按钮可判断是否打开,避免重复打开 使用Qt中的TabWidget组件创建一个简单的分页窗体布局。点击按钮时,会新增一个窗体并添加到TabWidget中。每个子窗体能动态获取父窗体指针以进行操作 分别…...
HarmonyOS开发实战( Beta5版)合理使用动画丢帧规范实践
本文列举了部分用于优化动画时延的正反案例,帮助开发者在遇到相似场景时进行优化,解决构建页面动画时遇到动画时延较长的问题。 减少动画丢帧 在播放动画或者生成动画时,画面产生停滞而导致帧率过低的现象,称为动画丢帧。 播放…...
基于BiLSTM-CRF的医学命名实体识别研究(下)模型构建
一.生成映射字典 接下来需要将每个汉字、边界、拼音、偏旁部首等映射成向量。所以,我们首先需要来构造字典,统计多少个不同的字、边界、拼音、偏旁部首等,然后再构建模型将不同的汉字、拼音等映射成不同的向量。 在prepare_data.py中自定义…...
5.sklearn-朴素贝叶斯算法、决策树、随机森林
文章目录 环境配置(必看)头文件引用1.朴素贝叶斯算法代码运行结果优缺点 2.决策树代码运行结果决策树可视化图片优缺点 3.随机森林代码RandomForestClassifier()运行结果总结 本章学习资源 环境配置(必看) Anaconda-创建虚拟环境…...
VMWARE VCENTER6.7 VCSA通过Web5480进行版本升级
VCENTER当前版本如下图 操作前先给VCENTER打一个快照,出问题可以立即回退 1、先下载VCSA镜像,并将VCSA镜像上传至DataStore中; 2、选中VCSA虚拟机,编辑配置 3、挂载新上传的VCSA镜像,一定要勾选“已连接”和“打开电源…...
GIT使用常见问题
如何安装Git? 在Windows操作系统中,可以从Git官方网站(https://git-scm.com)下载最新的Git安装程序,然后按照提示进行安装。在Mac操作系统中,可以使用Homebrew或者直接从Git官方网站下载安装程序进行安装。…...
内核链表
一、特点 灵活性 内核链表可以连接各种不同类型的数据结构,因为它只包含指向下一个和上一个节点的指针,不依赖特定的数据类型,这使得内核开发者可以根据不同的需求灵活地使用它。你可以将不同类型的结构体通过内核链表连接起来,实…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
