首页 > 其他分享 >缺失的第一个正数

缺失的第一个正数

时间:2024-12-19 16:54:48浏览次数:3  
标签:return 第一个 示例 int nums 数组 正数 缺失

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

思路见代码注释

class Solution {
public:
    int firstMissingPositive(vector<int>& nums) {
        int n = nums.size();
        //对于一个长度为n的数组,其最大没有出现的正数只可能是n+1
        //所以将小于等于0的数改为n+1
        for(int i=0;i<n;i++){
            if(nums[i]<=0) nums[i]=n+1;
        }
        //现在数组所有元素均为正数
        //所以使用负数进行打标记,没有负数的位置即为没有出现的正数
        for(int i=0;i<n;i++){
            //因为此处的数值可能被之前被置为负数了,所以要取绝对值
            int index = abs(nums[i]);
            if(index<=n) nums[index-1] = -abs(nums[index-1]);//确保置为负数
        }
        //寻找不是负数的位置,如果一直没有找到,那答案就是n+1
        for(int i=0;i<n;i++){
            if(nums[i]>0) return i+1;
        }
        return n+1;
    }
};

 

标签:return,第一个,示例,int,nums,数组,正数,缺失
From: https://www.cnblogs.com/yueshengd/p/18617553

相关文章

  • 41. 缺失的第一个正数
    题目链接解题思路:整体思路就是,我们先假想,[0,n-1]上,放满了1~n,所以,我们缺失的第一个正数就是n+1。也就是说,i下标,放的数字是i+1。那么我们从左往右遍历的过程中,就尽量满足这种情况1️⃣如果nums[i]==i+1,直接跳过,啥都不管2️⃣如果nums[i]<=0,那么,我们就「发货」到「无效区......
  • 【用Rust写CAD】第三章 第一个Rust程序 第二节 Rust注释
    注释用于解释代码的作用和目的,帮助开发者理解代码的行为,编译器在编译时会忽略它们。通过编写清晰和详细的文档注释,可以使代码更易于理解,并帮助其他开发者更好地利用你的代码或库。Rust提供了三种主要的注释方式:单行注释、多行注释和文档注释。‌文章目录1、单行注释2、......
  • 电脑为什么会提示“msvcr120.dll缺失”?“找不到msvcr120.dll文件”要怎么解决?
    电脑故障排查指南:揭秘“msvcr120.dll缺失”的真相与解决方案在软件开发与日常维护的广阔天地里,遇到系统报错或文件缺失的情况可谓家常便饭。今天,我将带领大家深入探讨一个常见的系统提示——“msvcr120.dll缺失”,并揭秘其背后的原因及有效解决方案。通过这一探讨,希望能帮助大......
  • 程序员都解决不了的问题“找不到vcruntime140.dll,无法继续执行代码”要怎么解决?“缺失
    电脑运行疑难杂症大揭秘:如何应对“找不到vcruntime140.dll,无法继续执行代码”的困扰?在探索数字世界的旅途中,每位软件开发者和电脑用户都可能遭遇过各式各样的系统报错与文件问题。今天,我们就来深入探讨一个常见却让人头疼的错误——“找不到vcruntime140.dll,无法继续执行代码......
  • 解决Windows Server环境下PPTX转PDF时WebP格式图片缺失
    如果喜欢,欢迎关注WX:攻城狮重楼在WindowsServer环境下,将PPTX文件另存为PDF时,遇到的一个问题是PDF中的图片部分缺失,且这些缺失的图片实际为WebP格式。本文将介绍这一问题的原因及两种解决方案。问题原因在WindowsServer环境下,将PPTX文件另存为PDF时,若PDF中的图片......
  • 一步步教你如何使用福昕低代码平台(四):通过InsCode发布第一个福昕低代码应用-Word2PDF
    这个文章严格说,并不完全是福昕低代码平台的介绍。为什么写这个文章呢?主要是我要找一个比较容易的方式让大家方便的去尝试,同时也可以最低门槛的可以对外发布web服务。先看看下面的演示,直接运行即可:运行后,点击打开网页,也可以在web浏览器中体验web服务虽然之前就看......
  • 28_找出字符串中第一个匹配项的下标
    Leetcode28.找出字符串中第一个匹配项的下标12.17.2024问题描述:给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果needle不是haystack的一部分,则返回-1。1.示例1:-输入:haystack="sadbutsad",needle="s......
  • mfc140.dll文件缺失的修复方法分享,全面分析mfc140.dll的几种解决方法
    mfc140.dll是MicrosoftFoundationClasses(MFC)库中的一个动态链接库(DLL)文件,它是微软基础类库的一部分,为Windows应用程序的开发提供了丰富的类库和接口。MFC库旨在简化Windows应用程序的开发过程,提供了一系列预定义的C++类,这些类封装了WindowsAPI函数,使得开发者可以更方便地创......
  • msvcp100.dll文件缺失的修复方法分享,全面分析msvcp100.dll的修复方法
    msvcp100.dll是一个动态链接库(DLL)文件,属于MicrosoftVisualC++2010RedistributablePackage的一部分。这个文件对于运行使用MicrosoftVisualC++2010编译器编译的应用程序至关重要。msvcp100.dll包含了C++标准库的实现,提供了应用程序运行时所需的核心功能,如输入/......
  • MEDIQ:面向可靠临床推理的主动问诊型大模型,基于信息缺失场景下的动态交互式医疗诊断研
    MEDIQ:面向可靠临床推理的主动问诊型大模型,基于信息缺失场景下的动态交互式医疗诊断研究,提升诊断准确率22.3%论文大纲理解1.最终目标2.层层分解的关键问题3.解决方案及效果4.思路特点结构分析1.层级结构分析叠加形态(能力层层递进)构成形态(部件组合带来新能力)......