LeetCode 之 First Missing Positive

加湿器方案-DLT8M04TS-杰力科创 基本组成: 一个触摸按键、一组RGB灯、一个雾化片、一个充电IC。 产品功能: 第一次上电光机状态,RGB红/绿/红灯依次闪烁灭; 2、按键功能:短按开关机和三档喷雾工作模式,第一次短按持续喷雾,短按第二次喷3S,停3S,短按第三次关闭喷雾模式,依次循环; 在喷雾或是不喷雾的状态下长按1.5S RGB灯渐变,一直循环,第二次长按当前灯光闪烁一下常亮,第三次长按关机; 3、持续喷雾定时5小时自动断电,间歇喷雾定时10小时自动断电,若在间歇工作时有切换为持续喷雾,那间歇喷雾的... 阅读详情

题目链接 First Missing Positive

这道题目看了好一会都没看懂,后来才终于明白题意了。
在一个乱序的整数数组中找到第一个缺失的正整数,例如:在数组[1,2,0]中,从1开始数,有1,2,但是缺少3,所以返回3;在数组[3,4,-1,1]中,从1开始数,有1,3,4,但是没有2,所以返回2。

这道题要求算法的时间复杂度为O(n),且额外空间为常数。

解题思路:首先在nums[i]上放置正确的整数i+1,如果不是,则进行交换,将其放置到正确的位置。之后再遍历进行判断,nums[i]上是否为i+1,如果不是,则返回i+1即可。
其中需要注意的是:
1. 需要判断此时该位置上是否是正确的整数,如果是,则无需进行交换,不然会出现无限循环;
2. 在进行交换后,i不应该进行+1,不然的话,会漏掉交换后,nums[i]上的整数;
3. 利用数组[1,2,5,3,4],即不缺少中间的正整数,那么需要按照顺序应该返回6,即len+1。

代码如下:

class Solution {
    public int firstMissingPositive(int[] nums) {
        int len = nums.length;
        int i = 0;
        while(i<len){
        //交换前后位置上的数值均不为正确数值的情况下,才进行交换
            if(nums[i]!=i+1 && nums[i]>0 && nums[i]<len && nums[nums[i]-1]!=nums[i] ){
                int tmp = nums[nums[i]-1];
                nums[nums[i]-1] = nums[i];
                nums[i] = tmp;
            }
            else
                i++;
        }

        for(int j=0;j<len;j++){
            if(nums[j]!=j+1)
                return j+1;
        }

        return len+1;
    }
}
FAST-LIVO2 源码精读(十八):实时性优化、漂移排查与工程落地 FAST-LIVO2 的工程价值,不在于某一个孤立的技巧,而在于它把"激光的几何精度、惯性的高频预测、视觉的纹理与色彩"用一套简洁的滤波框架紧紧拧在一起,又在实时性、鲁棒性、可扩展性之间取得了难得的平衡。先用内建计时表定位瓶颈,再按降采样、并行、滑窗、编译优化、双频输出逐项加速;遇到漂移先看现象、循诊断树定位根因、回到对应章节取解法。十八篇至此收束。 阅读详情

相关推荐

新手也能搞定的ANPC三电平逆变器Simulink仿真:从SPWM调制到开关损耗优化

本文详细介绍了如何在Simulink中搭建ANPC三电平逆变器仿真模型,从SPWM调制基础到开关损耗优化技巧。通过分层设计思路和实用代码示例,帮助新手快速掌握ANPC拓扑的核心功能,包括中点平衡控制和性能指标分析,为电力电子系统设计提供实践指导。

weixin_30335575的博客 407

First Missing Positive

Date:   Nov. 1, 2017 Problem:   https://leetcode.com/problems/first-missing-positive/description/ Description:   Given an unsorted integer array, find the first missing positive integer.   ...

diaoyaozheng2830的博客 132

编译原理考试大题分析【太原理工大学】

看完本篇大题拿 85% 的分应该没问题,TYUT 太原理工大学编译原理期末考试。

m0_52861684的博客 1万+

【leetcode】First Missing Positive

【leetcode】First Missing Positive 找第一个没有出现的正数,我感觉很简单啊,为什么是hard?我打算用一个数组把正数作为下表映射到数组中。然后么,直接遍历数组,找到第一个没出现的就ok。 class Solution { public: int firstMissingPositive(vector& nums) { if(nums.si

猫和鱼爪的鸟窝 459

Orbbec-Gemini-335 深度相机 Python SDK 编译与配置全记录(Windows 环境)

本篇博客将围绕 Windows 系统下 Orbbec SDK 的 Python 配置与编译过程进行详细说明,主要使用的是官方提供的 pyorbbecsdk Python wrapper 项目以及 Orbbec SDK V2 Python Wrapper 配置指南,并记录了安装与配置过程中遇到的若干问题及解决办法。

Junseer的博客 1965

CAPL编程入门:从零开始掌握汽车通信脚本语言

本文详细介绍了CAPL编程的基础知识,从开发环境搭建到核心语法精要,再到总线通信实战和高级调试技巧。CAPL作为汽车通信脚本语言,专为CAN、LIN等网络协议设计,帮助工程师高效完成车载网络测试。通过实战案例和性能优化建议,读者可以快速掌握CAPL编程技能。

s1t2u3的博客 978

Leetcode 41. First Missing Positive

Leetcode 41. First Missing Positive 算法: Check if 1 is present in the array. If not, you’re done and 1 is the answer. If nums = [1], the answer is 2. Replace negative numbers, zeros, and numbers larger than n by 1s. 检查1是否存在,不存在返回1。如果1存在,且数组只有一个元素,则返回2。把所有0

weixin_43876597的博客 295

欧姆龙PLC与fanuc发那科机器人进行Ethrenet ip通信测试

近期在做发那科FANUC的通讯,会吧CC-LINK、Profibus-DP、Profinet I/O、DeviceNet、EtherNet/IP这些常用通讯做成文档发上来,大家喜欢的话可以关注 注:做对应的通讯,在机器人控制柜都需要安装对应的板卡以及软件功能 截图中的程序设置和机器人EDS插件在下面链接 https://download.youkuaiyun.com/download/gojava/13770799 PLC为主站 机器人为从站 一、硬件部分 欧姆龙PLC ...

七兔自习室 1万+

Leetcode 41 First Missing Positive

Leetcode 41 First Missing Positive题目思路代码 题目 Given an unsorted integer array, find the smallest missing positive integer. Example 1: Input: [1,2,0] Output: 3 Example 2: Input: [3,4,-1,1] Output: 2 Example 3: Input: [7,8,9,11,12] Output: 1 Follow up: Y

weixin_43796689的博客 209

HFSS实战项目——GPS北斗双模微带天线

本文设计了一款方形圆极化微带天线应用于北斗B1和GPSL1频段,满足高增益、低VSWR、适当方向图等要求。设计中心频率为1568MHz,介质板采用厚度h=1.6mm的Arlon AD450(tm)板,相对介电常数为4.5,采用探针馈电。

2401_87464239的博客 1766

【2026最新版】PCL点云处理算法汇总(C++长期更新版)

PCL学习目录。博客长期更新,最近一次更新时间为:2026年10月4日。

点云侠的博客 63万+

LeetCode41——First Missing Positive

LeetCode41——First Missing Positive 题意: 在序列中找到第一个没有出现的正整数。 我的方法比较笨,后来提交过后通过的确时间效率非常低。 首先,排序、去重。 然后对这个有序序列进行迭代: 找到正整数开始的索引i,从这个索引开始,该序列的数后面应该是按 1 2 3 4 5 6 7...这样的顺序来排列。 所以对于从索引i开始的每一个元素nums[

上善若水 607

快速卷积结构FIR数字滤波器的设计与ARM平台实现

本文提出了一种基于快速卷积结构的FIR数字滤波器设计与实现方案。通过Matlab设计了满足特定指标的低通FIR滤波器,采用重叠-保存法和重叠-相加法两种快速卷积算法,将计算复杂度从O(N·M)降低到O(NlogN)。详细介绍了滤波器系数生成、性能验证流程,并提供了ARM平台C语言实现的关键技术,包括定点量化处理。实验结果表明,该方法能有效滤除混合信号中的高频干扰,保留目标1kHz正弦信号,验证了设计方案的有效性。

huanghm88的专栏 123

LeetCode No.41 First Missing Positive 题解

LeetCode No.41 First Missing Positive 题解题目描述 Given an unsorted integer array, find the first missing positive integer. For example, Given[1,2,0] return 3, and [3,4,-1,1] return 2. You

Guo15331092的博客 502

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LeetCode: 41. First Missing Positive

LeetCode: 41. First Missing Positive

杨领well的专栏 1555

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

leetcode 41. First Missing Positive

leetcode 41. First Missing Positive  今天上午做了两个0-n  排序的问题,排序关键所在于swap public class Solution { public int firstMissingPositive(int[] nums) { int len = nums.length; int i=0;

独钓寒江雪 452

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

LeetCode力扣之First Missing Positive

Given an unsorted integer array, find the first missing positive integer.For example,Given [1,2,0] return 3,and [3,4,-1,1] return 2.Your algorithm should run in O(n) time and uses constant space./** ...

LeeWei 169

Leetcode First Missing Positive

Leetcod First Missing Positive,本算法使用hash表实现,此外注意到positive从1开始,而给出的数组至有多len(arr)个positive,而且有如下几种情况: 元素为负数,那么一定不会对计算positive产生影响 元素为正数,但是元素大于len(arr),此时也不会对结果有影响,因为此时在1到len(arr)这些数中一定会有空出的元素,因此大于len(arr

Ttssxuan 486

【排序+难题】LeetCode 41. First Missing Positive

LeetCode 41. First Missing Positive 本博客转载自:[1]http://www.cnblogs.com/grandyang/p/4395963.html [2]https://www.cnblogs.com/clnchanpin/p/6727065.html 各种排序算法总结链接:https://blog.youkuaiyun.com/allenlzcoder/arti...

Allenlzcoder的博客 368

LeetCode刷题:41. First Missing Positive

LeetCode刷题:41. First Missing Positive 原题链接:https://leetcode.com/problems/first-missing-positive/ Given an unsorted integer array, find the smallest missing positive integer. Example 1: Input: [1,2...

梅森上校的博客 业精于勤荒于嬉,形成于思毁于随。 248

Leetcode (41) First Missing Positive

Leetcode (41) First Missing Positive Given an unsorted integer array, find the first missing positive integer. For example, Given [1,2,0] return 3, and [3,4,-1,1] return 2. Your algor

nevermorezjh的专栏 371

LeetCode 41---First Missing Positive

题目链接: LeetCode 41—First Missing Positive AC代码:public class Problem41 { public static void main(String[] args) { // TODO Auto-generated method stub int[] a={1}; System.out.p

调包侠 603

[LeetCode]41. First Missing Positive

41. First Missing Positive 题目要求找出数组中第一个缺失的正数。难点在与时间复杂的要求O(n),空间复杂度要求O(1)。又是一道不会做抄答案的题目。 思路是把遇到的每一个数放到元数组中排序的位置。 class Solution { public: int firstMissingPositive(vector&lt;int&gt;&amp; nums) ...

JOHZEN 279

LeetCode题目:41. First Missing Positive

LeetCode题目:41. First Missing Positive 原题链接:https://leetcode.com/problems/first-missing-positive/description/ 解题思路:(此题数据限制的不是很严格,用sort快排对数组排序,然后遍历数组,也可以过。)实际上,题目所说的O(1)并不包含输入的数组大小,因此可以改变输入的数组来实现O(n)的复

MyCodecOdecoDecodE的博客 322

Leetcode 41. First Missing Positive (cpp)

题目 解法1: 首先是时间复杂度O(1),空间复杂度O(n)的解法。关键在于答案一定会在1~n+1中产生,n为数组长度。那么先保存出现过的num,然后遍历1到n+1,找第一个没有出现的即可 class Solution { public: int firstMissingPositive(vector<int>& nums) { unordered_map<int,int> seen; for(int i=0;i<nums.si

qq_37821701的博客 332

Leetcode1-100: 41. First Missing Positive

Leetcode1-100: 41. First Missing Positive问题描述解题思路implement 1implement 2代码实现implement 1implement 2分析后记 问题描述 题目要求: 输入一个整形数组,输出里面缺失的最小的正整数。 解题思路 由于题目中要求了时间复杂度是O(n),还要求空间复杂度是常数,所以这题变得难度大了很多。但是首先分析一下如果去掉这些要求,可以用一个额外的数组来作为flag表示状态的话,这题就简单了很多,注意:假设数组有n个元素,那么最后的结

Y123iwantit的博客 268
上一篇: LeetCode 之 Rotate Image
下一篇: Opendaylight 基础环境安装
小菜鸟要高飞
博客等级 码龄12年 14粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值