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

LeetCode 41题:缺失的第一个正数

目录

题目

思路

代码

 


题目

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。

请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。

示例 1:

输入:nums = [1,2,0]
输出:3

示例 2:

输入:nums = [3,4,-1,1]
输出:2

示例 3:

输入:nums = [7,8,9,11,12]
输出:1

提示:

  • 1 <= nums.length <= 5 * 105
  • -231 <= nums[i] <= 231 - 1

思路

想要实现题目要求的时空限制,可以利用哈希表。

根据题目分析,我们只需要考虑在 [ 1,numsize ]范围内的数据,如果数据都不在该范围内,则应该返回 1。构建哈希表的哈希方法是:该范围内数的地址 = 数值减一,然后将该地址标记,标记方法为取负,在此之前,需要将所有小于等于0的数换为 numsize+1。

标记之后遍历数组,出现的第一个正数的下标加1便是结果。

代码

#include <stdio.h>
#include <stdlib.h>
#include <math.h>int firstMissingPositive(int *nums, int numsSize);int main()
{int size = 2;int nums[4] = {2, 1};int res = firstMissingPositive(nums, size);printf("%d", res);return 0;
}int firstMissingPositive(int *nums, int numsSize)
{for (int i = 0; i < numsSize; i++){if (nums[i] <= 0){nums[i] = numsSize + 1;}}for (int i = 0; i < numsSize; i++){int t = fabs(nums[i]);if (t < numsSize + 1 && nums[t - 1] > 0){nums[t - 1] = -nums[t - 1];}}int i;for (i = 0; i < numsSize; i++){if (nums[i] >= 0){break;}}return i + 1;
}

 

相关文章:

LeetCode 41题:缺失的第一个正数

目录 题目 思路 代码 题目 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,0] 输出&#xff1a;3示例 2&#xff…...

学单片机有什么用?

单片机简而言之就是一个小计算机系统&#xff0c;它已经应用到了我们生活中的方方面面。单片机比专用处理器适合应用于嵌入式系统&#xff0c;因此它得到了多的应用&#xff0c;事实上单片机是世界上数量多的计算机。 现代人类生活中所用的几乎每件电子和机械产品中都会集成有单…...

Go 1.21新增的 slices 包详解(二)

Go 1.21新增的 slices 包提供了很多和切片相关的函数&#xff0c;可以用于任何类型的切片。 slices.Delete 定义如下&#xff1a; func Delete[S ~[]E, E any](s S, i, j int) S 从 s 中删除元素 s[i:j]&#xff0c;返回修改后的切片。如果 s[i:j] 不是 s 的有效切片&#…...

解决charles无法抓取localhost数据包

我们有时候在本地调试的时候&#xff0c;使用charles抓取向本地服务发送的请求的&#xff0c;发现无法抓取。 charles官方也作了相应说明&#xff1a; 大概意思就是 某些系统使用的是硬编码不能使用localhost进行传输&#xff0c;所以当我们连接到 localhost的时候&#xff0c…...

基于注解优雅的实现接口幂等性

一、什么是幂等性 简单来说&#xff0c;就是对一个接口执行重复的多次请求&#xff0c;与一次请求所产生的结果是相同的&#xff0c;听起来非常容易理解&#xff0c;但要真正的在系统中要始终保持这个目标&#xff0c;是需要很严谨的设计的&#xff0c;在实际的生产环境下&…...

flutter:webview_flutter和flutter_inappwebview的简单使用

前言 最近在研究如何在应用程序中嵌入Web视图&#xff0c;发现有两个库不错。 一个是官方维护、一个是第三方维护。因为没说特别的需求&#xff0c;就使用了官方库&#xff0c;实现一些简单功能是完全ok的 webview_flutter 不建议使用&#xff0c;因为效果不怎么样&#xf…...

opencv进阶09-视频处理cv2.VideoCapture示例(打开本机电脑摄像头)

视频信号&#xff08;以下简称为视频&#xff09;是非常重要的视觉信息来源&#xff0c;它是视觉处理过程中经常要处理的一类信号。实际上&#xff0c;视频是由一系列图像构成的&#xff0c;这一系列图像被称为帧&#xff0c;帧是以固定的时间间隔从视频中获取的。获取&#xf…...

大语言模型与语义搜索;钉钉个人版启动内测,提供多项AI服务

&#x1f989; AI新闻 &#x1f680; 钉钉个人版启动内测&#xff0c;提供多项AI服务 摘要&#xff1a;钉钉个人版正式开始内测&#xff0c;面向小团队、个人用户、高校大学生等人群。该版本具有AI为核心的功能&#xff0c;包括文生文AI、文生图AI和角色化对话等。用户可通过…...

小程序-基于vant的Picker组件实现省市区选择

一、原因 因vant/area-data部分的市/区数据跟后台使用的高德/腾讯省市区有所出入&#xff0c;故须保持跟后台用同一份数据&#xff0c;所以考虑以下几个组件 1、Area 2、Cascader 3、Picker 因为使用的是高德地图的省市区json文件&#xff0c;用area的话修改结构代价太大&…...

智慧水利利用4G物联网技术实现远程监测、控制、管理

智慧水利工业路由器是集合数据采集、实时监控、远程管理的4G物联网通讯设备&#xff0c;能够让传统水利系统实现智能化的实时监控和远程管理。工业路由器利用4G无线网络技术&#xff0c;能够实时传输数据和终端信息&#xff0c;为水利系统的运维提供有效的支持。 智慧水利系统是…...

sql server Varchar转换为Datetime

将Varchar转换为Datetime是一个常见的需求&#xff0c;在处理日期和时间数据时特别有用。在SQL Server中&#xff0c;可以使用CONVERT函数或CAST函数将Varchar转换为Datetime。 使用CONVERT函数 CONVERT函数可以将一个值从一个类型转换为另一个类型。以下是使用CONVERT函数将…...

什么文件传输协议才能保障跨国文件传输安全又稳定

在当今的全球化时代&#xff0c;跨国文件传输是一种常见而又重要的需求&#xff0c;无论是个人还是企业&#xff0c;都需要通过网络来分享和交换各种类型和大小的文件。但是&#xff0c;跨国文件传输也面临着许多挑战和风险&#xff0c;如何选择一个合适的文件传输协议&#xf…...

LeetCode笔记:Weekly Contest 359

LeetCode笔记&#xff1a;Weekly Contest 359 1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 1. 解题思路2. 代码实现 比赛链接&#xff1a;https://leetcode.com/contest/weekly-contest-359 1. 题目一 …...

使用Java和ChatGPT Api来创建自己的大模型聊天机器人

文章目录 前言ChatGPT Api简析Chatfunction call Embeddings 制作机器人上下文向量数据库 更多场景介绍扩展阅读 前言 什么是大模型&#xff1f; 大型语言模型&#xff08;LLM&#xff09;是一种深度学习模型&#xff0c;它使用大量数据进行预训练&#xff0c;并能够通过提示工…...

Maven介绍_下载_安装_使用_原理

文章目录 1 Maven介绍1.1 Maven是介绍1.2 Maven的作用 2 Maven下载与安装2.1 官网下载2.2 文件目录2.3 环境配置 3 Maven基础概念3.1 仓库分类3.2 依赖坐标3.3 坐标组成 4 Maven配置4.1 本地仓库配置4.2 远程仓库的设置4.3 镜像仓库配置4.4 IDEA配置Maven 5 Maven项目创建5.1 M…...

算法通关村十一关 | 位运算的规则

1.数字在计算机中的表示 机器数&#xff1a;一个数在计算机中的二进制表示形式&#xff0c;叫做这个数的机器数。机器数是自带符号的&#xff0c;在计算机用一个数的最高位存放符号&#xff0c;整数为0&#xff0c;负数为1。比如&#xff0c;十进制中的数3&#xff0c;计算机字…...

【Rust】Rust学习 第十五章智能指针

指针 &#xff08;pointer&#xff09;是一个包含内存地址的变量的通用概念。这个地址引用&#xff0c;或 “指向”&#xff08;points at&#xff09;一些其他数据。Rust 中最常见的指针是第四章介绍的 引用&#xff08;reference&#xff09;。引用以 & 符号为标志并借用…...

炒股怎样加杠杆?关于股票杠杠平台比例的选择知识分析

在股票市场中&#xff0c;加杠杆是一种常见的投资策略&#xff0c;可以帮助投资者提升收益&#xff0c;但也伴随着更高的风险。本文将介绍炒股加杠杆的具体步骤和股票杠杆平台比例选择的知识分析&#xff0c;帮助读者更好地了解并使用这一策略。 一、炒股加杠杆的步骤 1. 选择…...

【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建的功能

【jenkins】jenkins流水线构建打包jar&#xff0c;生成docker镜像&#xff0c;重启docker服务的过程&#xff0c;在jenkins上一键完成&#xff0c;实现提交代码自动构建&#xff0c;服务重启&#xff0c;服务发布的功能。一键实现。非常的舒服。 1. 启动脚本 shell脚本 这是 s…...

Pytest使用fixture实现token共享

同学们在做pytest接口自动化时&#xff0c;会遇到一个场景就是不同的测试用例需要有一个登录的前置步骤&#xff0c;登录完成后会获取到token&#xff0c;用于之后的代码中。首先我先演示一个常规的做法。 首先在conftest定义一个login的方法&#xff0c;方法返回token pytes…...

2026年家用投影仪品牌怎么选?聚焦画质准度的工程师推荐

2026年高端家用投影仪哪个品牌最好&#xff1f;基于评分卡模型的权威品牌排行备选标题&#xff1a;2026年高端家用投影仪哪个品牌最好&#xff1f;四大品牌量化评分终极排行从色彩科学到口碑&#xff1a;2026年高端家用投影仪品牌深度评测榜预算2万到5万&#xff1a;2026年明基…...

别再被NFS的‘非法端口’拦住了!手把手教你用insecure选项解决mount.nfs: access denied

突破NFS端口限制&#xff1a;深入解析insecure选项的实战应用 上周在调试一个嵌入式开发环境时&#xff0c;遇到了一个典型的NFS挂载问题。当我在VirtualBox虚拟机中尝试挂载物理机上的NFS共享目录时&#xff0c;终端突然弹出mount.nfs: access denied by server while mountin…...

告别黑苹果配置噩梦:5大核心优势让开源工具OpCore-Simplify成为新手救星

告别黑苹果配置噩梦&#xff1a;5大核心优势让开源工具OpCore-Simplify成为新手救星 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 黑苹果配置一直是…...

别再死记硬背了!用Python脚本自动解析蓝牙BR/EDR/BLE测试报告(附代码)

用Python解放双手&#xff1a;自动化解析蓝牙测试报告的实战指南 每天面对堆积如山的蓝牙测试报告&#xff0c;你是否已经厌倦了手动整理数据的繁琐&#xff1f;当测试工程师们还在为Excel公式抓耳挠腮时&#xff0c;Python早已准备好了一套自动化解决方案。本文将带你从零开始…...

从国赛真题到实战演练:蓝桥杯CTF网络安全竞赛核心题型深度剖析

1. 逆向工程实战&#xff1a;从加密程序到Flag还原 去年蓝桥杯CTF国赛的第一道逆向题让不少选手印象深刻。题目给出一个名为encodefile的可执行程序和一个加密后的数据文件enc.dat&#xff0c;要求还原原始flag内容。这类题型在CTF中非常典型&#xff0c;主要考察选手对程序逻辑…...

【Cadence Virtuoso】进阶:利用仿真数据反推工艺库MOSFET的λ与Vth实战

1. 为什么需要反推MOSFET参数&#xff1f; 刚接触TSMC 65nm工艺时&#xff0c;我发现PDK提供的参数表里λ和Vth都是固定值。但在实际设计电流镜和差分对时&#xff0c;这些"标准参数"总让我觉得哪里不对劲。后来在调试一个基准电流源时终于发现问题&#xff1a;PDK给…...

MedGemma 1.5垂直场景:中医馆本地部署中药配伍禁忌推理助手

MedGemma 1.5垂直场景&#xff1a;中医馆本地部署中药配伍禁忌推理助手 1. 引言&#xff1a;当传统中医遇上现代AI 想象一下&#xff0c;一位经验丰富的老中医&#xff0c;在开方时&#xff0c;除了依靠毕生所学和师徒传承的记忆&#xff0c;还能随时向一位精通古今医典、永不…...

GPEN对戴口罩人脸的修复能力实测:遮挡场景适应性

GPEN对戴口罩人脸的修复能力实测&#xff1a;遮挡场景适应性 1. 引言&#xff1a;当人脸识别遇上口罩 最近几年&#xff0c;口罩成了我们生活中的常客。无论是进出公共场所&#xff0c;还是在一些特殊的工作环境中&#xff0c;遮住半张脸的情况越来越普遍。这带来了一个有趣的…...

别再手动汉化了!用Docker Compose持久化配置Greenbone GVM中文界面(附yml文件修改)

持久化配置Greenbone GVM中文界面的Docker Compose实战指南 对于安全工程师和运维人员来说&#xff0c;Greenbone Vulnerability Management&#xff08;GVM&#xff09;是进行漏洞扫描的利器。但每次重启容器后都需要重新配置中文界面&#xff0c;这无疑增加了维护成本。本文…...

把 SAP Fiori 远程系统配置讲透:SM59、System Alias、sap-system 与多后端路由实践

在 SAP Fiori launchpad 的真实项目里,用户登录的系统,和应用实际运行、实际取数的系统,往往并不是同一台机器。很多团队在做 PoC 的时候,一切看起来都很顺;一旦进入企业级部署,前端服务器、Gateway、ECC、S/4HANA、SRM 甚至多个区域性后端同时出现,导航失败、取数跑偏、…...