41.缺失的第一个正数

1. 解题原理:

(1)对于一个有序的、不缺失元素的正数数组nums,元素nums[i]应当位于nums[i]-1的位置处。

(2)nums数组的长度为N,缺失的第一个正数如果不位于[1,N],那么就肯定是N+1

2. 解题步骤

(1)元素替换:负数和0对“有序的、不缺元素的、正数”数组没影响,所以把负数元素、0元素都替换成N+1,现在数组nums中只有两部分了:[1,N]的部分(这部分可能存在也可能不存在)、大于等于N+1的部分。

(2)位置标记:对于一个正数元素nums[i],它在有序的、不缺失元素的正数数组nums中的位置应当是nums[i]-1,所以我们将元素nums[nums[i]-1]取相反数,用来表示该位置的元素是存在的。

因为nums[nums[i]-1]取过相反数后会变成负数,所以在判断其对应位置的元素是否存时,我们需要进行取绝对值操作。

(3)寻找第一个正数:遍历下标index,哪个下标对应的元素还是正数,就说明值为“这个下标+1”的正数缺失了

3. 代码

int n = nums.length;


        // 非正数都变成n+1,再也不管它们了
        for(int i=0; i<n; ++i){
            if(nums[i] <= 0){
                nums[i] = n+1;
            }
        }

        // 标记数组中存在的元素
        for(int i=0; i<n; ++i){
            // 取绝对值是因为  num-1位置在置负数的过程中,可能已经将正数变为负数了
            int num = Math.abs(nums[i]);
            if( num <= n ){
                
                nums[num-1] = -1* Math.abs(nums[num-1]);
            }
        }

        // 找到缺失的最小正数——遍历过程中遇到的第一个正数
        for(int i=0; i<n; ++i){
            if(nums[i]>0){
                return i+1;
            }
        }

        return n+1;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/556965.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

excel表格怎么设置密码?excel文件加密的两个方法

一、加密码的原理​ Excel加密码的原理主要基于加密算法和密钥管理。当用户为Excel文件或工作表设置密码时&#xff0c;Excel会采用一种加密算法对文件或工作表进行加密处理。这种加密算法通常是对称加密算法&#xff0c;如AES(高级加密标准)或DES(数据加密标准)。 二&#x…

海外住宅代理:推特账号为何容易被关小黑屋?

推特是全球最受欢迎的社交媒体之一&#xff0c;每天都有数以百万计的用户在这个平台上发布信息、分享观点和交流互动。然而&#xff0c;有些用户可能会发现他们的推特账号不幸陷入了所谓的“关小黑屋”状态&#xff0c;即账号被限制了可见度&#xff0c;导致发布的内容无法被其…

【数据分析面试】24.20个数据库问答题 (考察数据开发和实际应用能力)

作为数据从业者&#xff0c;日常工作除了对各类业务数据进行分析挖掘&#xff0c;也需要经常和数据库打交道、甚至也少不了要承担一些数据开发、数仓管理的工作。掌握数据库管理的基本概念和技术是至关重要的。无论是初学者还是从业者&#xff0c;理解数据库索引、范式、事务、…

四.音视频编辑-音频混合-概述

引言 当我们在前两篇博客中成功地构建了一个媒体组合&#xff0c;并且略过了音频部分时&#xff0c;我们意识到了我们需要对这个项目进行更详细的探讨。在本篇博客中&#xff0c;我们将会展示如何创建一个包含视频轨道、配音音频轨道以及背景音频轨道的完整媒体组合。更进一步…

游泳耳机哪个牌子好?体验与口碑兼顾的4大游泳耳机汇总!

最近的天气越来越炎热了&#xff0c;许多人选择游泳作为一种既能锻炼身体又能享受清凉的活动。而随着科技的发展&#xff0c;越来越多的运动爱好者希望在游泳时也能享受到音乐的乐趣。因此&#xff0c;游泳耳机应运而生&#xff0c;成为市场上的热门产品。然而&#xff0c;面对…

项目中的解耦小能手-观察者模式

目录 1.使用场景 2.什么是观察模式 3.观察者模式结构图 4.代码实现案例 4.1 subject代码实现 4.2 Observer类代码实现 5. 回顾总结 1.使用场景 当一个对象的改变需要同事改变其他对象的时候&#xff0c;如&#xff1a;订单中心-下单成功需要通知库存、物流和积分去做相应…

交流回馈老化测试负载优点和应用

交流回馈老化测试负载是用于模拟真实环境下设备运行状态的测试工具&#xff0c;通过对设备进行长时间的连续工作&#xff0c;以检测其性能的稳定性和可靠性。这种测试负载具有许多优点&#xff0c;并且在实际应用中有着广泛的用途。 在实际应用中&#xff0c;设备往往需要在各种…

Flask实战

from flask import Flask appFlask(__name__)点击Flask同时点击键盘ctrl即可查看Flask的默认初始化函数 def __init__(self,import_name: str,static_url_path: str | None None,static_folder: str | os.PathLike[str] | None "static",static_host: str | None …

产品心理学:为什么管钱的都是女生?

大家发现了吗&#xff1f;大部分公司女财务居多&#xff0c;而在家庭中&#xff0c;多数也是女生管钱。 为什么管钱的都是女生&#xff1f;答案文尾揭晓。 问题的答案&#xff0c;要从一个心理学名词“过度自信偏差”说起 用人话说&#xff0c;就是“迷之自信” 过度自信的例…

【剪映专业版】11音频的全流程剪辑操作

视频课程&#xff1a;B站有知公开课【剪映电脑版教程】 1.音乐素材 可能包含人声&#xff0c;音乐素材普遍比较长&#xff0c;几十秒到几分钟。要点击倒三角才会出现分类。 点击下载箭头下载素材&#xff1b;点击加号将素材增加到轨道&#xff1b;时间指示器在哪个地方&#…

Python | Leetcode Python题解之第35题搜索插入位置

题目&#xff1a; 题解&#xff1a; class Solution:def searchInsert(self, nums: List[int], target: int) -> int:left, right 0, len(nums) #采用左闭右开区间[left,right)while left < right: # 右开所以不能有,区间不存在mid left (right - left)//2 # 防止溢出…

UE5增强输入系统 Enhanced Input

关键字&#xff1a; Enhanced Input 、 输入、映射、事件、鼠标、键盘、键鼠、动作、Trigger、触发器、 疑问&#xff1a; 新输入系统怎么做一个基础的案例&#xff1f;Trigger修改器中每个项都是什么功能&#xff1f;InputAction和InputMappingContext中都有修改器&#xff…

Python基础02-掌握HTTP API的秘诀

在下面文案基础上扩展&#xff0c;写一篇技术博客&#xff0c;标题要有吸引力&#xff1f; 标题&#xff1a; 在Python中&#xff0c;使用HTTP API已成为一种常见的操作。本文将深入探讨如何使用Python的requests库与HTTP API进行交互。我们将学习如何发送GET和POST请求、处理…

消息队列选型(RabbitMq、RocketMq、Kafaka)

文章目录 前言RabbitMq优点缺点 RocketMq优点缺点 Kafaka优点缺点 总结 前言 当引入消息队列时&#xff0c;常见的选择包括ActiveMQ、Kafka、RabbitMQ和RocketMQ。然而&#xff0c;近年来&#xff0c;ActiveMQ的活跃度已经下降&#xff0c;很多公司已经不再使用这款消息队列中…

TSINGSEE青犀算法中台消防通道堵塞/占压AI检测算法的介绍及应用

消防通道是建筑物内用于紧急疏散的通道&#xff0c;其畅通无阻对于保障人员生命安全至关重要。然而&#xff0c;由于各种原因&#xff0c;消防通道经常会被杂物、车辆等堵塞&#xff0c;一旦发生火灾等紧急情况&#xff0c;后果不堪设想。为了有效解决这一问题&#xff0c;我们…

【氮化镓】GaN HEMT失效物理和可靠性

概述: 本文是一篇关于AlGaN/GaN基高电子迁移率晶体管(HEMTs)的失效物理和可靠性研究的综述文章,发表在2013年10月的《IEEE Transactions on Electron Devices》上。文章由Enrico Zanoni等人撰写,主要关注了影响栅极边缘和肖特基结的失效机制,并探讨了提高这些器件可靠性…

文档加密软件哪个好用?为什么迅软DSE加密软件更受用户青睐?

通过对文档内容进行加密处理&#xff0c;以确保其安全性和保密性。文档加密软件采用加密算法对文档进行加密处理&#xff0c;在加密过程中&#xff0c;文档加密软件会将文档的原始内容转换为一种不可读的形式&#xff0c;即加密后的文档。这个加密过程是通过应用特定的加密算法…

SQVI创建以及生成程序

SAP数据快速查询工具&#xff1a;Sqvi-QuickView 项目实施&运维阶段&#xff0c;为了快速获取一些透明表数据&#xff0c;一开始接触项目肯定会通过大量的数据表查找&#xff0c;然后线下通过EXCEL通过VLOOKUP进行数据关联&#xff0c;这种方式在关联数据较少的情况比较适应…

spring boot获取请求参数并响应

获取请求参数并响应&#xff1a; 响应&#xff1a; 在Controller类或方法上加上ResponseBody注解&#xff0c;可以将方法返回值直接响应&#xff0c;如果返回值是实体对象或者集合&#xff0c;将转换为json格式响应。如下例&#xff1a; RestControllerResponseBodyControll…

Linux最常用的40个基本命令

目录 Linux基本命令命令1&#xff1a;ls &#xff08;查看指定目录中有哪些内容&#xff09;ls / 相当于查看根目录中的内容&#xff0c;相当于查看我的电脑ls -l&#xff08;小写l&#xff0c;或者使用ll&#xff09;详细查看目录下所有内容ls /usr/lib&#xff08;ls目录名称…