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

Codex入门10-Goal自主任务(进阶必学:设定目标就不管了,AI自己干活到完成) /goal 是Codex CLI最强大的进阶功能——设定一个目标,AI就会制定计划、分步执行、自我测试、持续迭代,即使你关掉终端也会继续。本文详解/goal的工作原理、配置启用方法、常用命令(pause/resume/status/clear),以及如何写出高质量的目标描述让AI高效自主完成任务。 阅读详情

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/article/details/79814453
【解题核心思想】:将数组的第i位存正数i+1。最后再遍历一次就可以。
思路:交换数组元素。使得数组中第i位存放数值(i+1)。
最后遍历数组,寻找第一个不符合此要求的元素,返回其下标。整个过程须要遍历两次数组,复杂度为O(n)。
下图以题目中给出的第二个样例为例,解说操作过程。
这里写图片描述
首先思路上,其次临界条件,这题和以下题异曲同工:
n个元素的数组,里面的数都是0~n-1范围内的,求数组中反复的某一个元素。没有返回-1, 要求时间性能O(n) 空间性能O(1)。

class Solution {//桶排序
public:
    int firstMissingPositive(vector<int>& nums) {
        int n = nums.size();
        //第i位存放i+1的数值
        for (int i = 0; i < n; ++i) {
            //nums[i]为正数,放在i+1位置
            //假设交换的数据还是大于0且<=n,则放在合适的位置,且数据不相等,避免死循环
            while (nums[i] > 0 && nums[i] <= n && nums[nums[i] - 1] != nums[i]) {
                swap(nums[i], nums[nums[i] - 1]);//为毛这么换,理解的还是不是很透彻啊~~~
            }
        }
        //循环寻找不符合要求的数据,返回
        for (int i = 0; i < n; ++i) {
            if (nums[i] != i + 1) return i + 1;
        }
        //假设都符合要求,则返回长度+1的值
        return n + 1;
    }
};
大数据运营可视化:Tableau+PowerBI数据看板搭建教程 当企业数据量从“GB级”跃升到“TB级”,运营人员面临的最大挑战不再是“如何收集数据”,而是“如何让数据说话”。数据看板作为“运营指挥中心的仪表盘”,能将零散的用户行为、业务指标、流量趋势浓缩成可快速解读的视觉语言。本文结合Tableau(自由探索的“数据瑞士军刀”)与PowerBI(微软生态的“组合家具”)两大工具,从需求分析→数据准备→指标设计→视图搭建→ dashboard 组合,一步步教你搭建符合业务逻辑的运营看板。 阅读详情

相关推荐

保姆级教程:手把手带你复现APFNet论文的RGBT目标跟踪模型(附完整代码与数据集配置)

本文提供了一份详细的APFNet论文复现指南,涵盖从环境搭建到模型测试的全流程。通过解析多模态融合模块和渐进式训练流程,帮助读者高效完成RGBT目标跟踪模型的复现工作,特别针对训练和测试中的常见问题提供实用解决方案。

weixin_29056781的博客 342

[LeetCode] 41. First Missing Positive

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...

Peng_maple的博客 188

GD-Link离线烧录全攻略:从配置到一键下载的保姆级教程

本文详细介绍了GD-Link离线烧录的全流程,从硬件准备到软件配置,再到一键下载的实战技巧。通过保姆级教程,帮助工程师快速掌握国产MCU的离线烧录技术,适用于产线批量烧录和现场设备维护等场景,显著提升工作效率。

ww90123的博客 649

从 LeetCode_41 缺失的第一个正数到八种排序算法

LeetCode 41. 缺失的第一个正数,这题在 LeetCode 上虽然属于困难题,但是如果不是因为题目要求算法的时间复杂度应为O(n),那么这题只能算作简单题。我的解法是:首先将给定数组排序,然后从最小的正数 1 开始判断。在提交前我以为算法的时间复杂度会很差,这时候奇怪的事情发生了。具体代码及运行结果如下: public int firstMissingPositive(int[] num...

wangbo818的博客 407

Windows Server 2012评估版过期自动关机问题:两种高效解决方案详解

本文针对Windows Server 2012评估版过期导致的自动关机问题,提供了两种高效解决方案。一是通过slmgr.vbs命令重置授权,临时延长评估期;二是使用DISM工具将评估版转换为正式版,一劳永逸。文章详细解析了两种方法的操作步骤、注意事项及适用场景,帮助用户快速恢复服务器稳定运行。

pytorchlight8的博客 1195

【生成数据集EXCEL文件】使用生成对抗网络GAN生成数据集:输出生成数据集EXCEL

生成器的任务是接收随机噪声向量作为输入,并尽可能生成与真实数据相似的样本,而判别器则是一个二分类器,旨在区分输入的样本是来自生成器生成的,还是来自真实数据。在训练过程中,生成器和判别器通过对抗学习的方式相互博弈,生成器的目标是生成足以欺骗判别器的样本,而判别器的目标则是尽可能准确地判断样本的真实性。GAN网络在多个领域展现了强大的能力,能够生成与训练数据分布相似的新数据,包括但不限于图像生成、图像风格转换、超分辨率、数据增强、视频生成、自然语言处理、医学图像处理以及游戏与虚拟现实等。

hustef的博客 1521

【LeetCode】 41. First Missing Positive 缺失的第一个正数(Hard)(JAVA)

【LeetCode】 41. First Missing Positive 缺失的第一个正数(Hard)(JAVA) 题目地址: https://leetcode.com/problems/first-missing-positive/ 题目描述: Given an unsorted integer array, find the smallest missing positive integer...

qq_16927853的博客 190

硬件基础——mos管

文章目录前言一、寄生参数二、使用步骤1.引入库2.读入数据总结 前言 MOS管设计重点 一、寄生参数 1.寄生电容 mos管有寄生电容Cgs,此电容大小一般为pF级别,一般规格书可以查到。 使用时,要特别注意GS管教的寄生电容Cgs,控制MOS管的导通与截止,本质上是控制Cgs电容的充放电。(最好要加限流) 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt imp

Malqaq的博客 6594

LeetCode 查找类题目

4. Median of Two Sorted Arrays题意:查找两个有序数组的中位数。思路:通过查找第k个数的方法来找中位数,对于A、B两个数组,如果A[k/2]&gt;B[k/2]那么两个数组并集的中位数肯定不在B的前k/2个元素中,所以可以删掉一部分数,反之亦可,最后剩下的就是所求的中位数。具体见代码。参考:http://blog.csdn.net/gao1440156051/artic...

qq_38345430的博客 899

准备生日礼物

摘要: 题目要求统计某月份需要准备的员工生日礼物数量。输入包括目标月份、员工姓名列表和对应的生日列表(格式为Year/Month/Day)。需处理重复员工(以最后一次录入为准),统计该月生日的员工人数。示例1中5月有3名员工生日,输出3;示例2中10月有6名,输出6。解题关键在于使用哈希表去重(以员工姓名为键),拆分生日字符串提取月份进行匹配。代码实现(C++/Java/Python)均遵循以下步骤:读取输入、哈希去重、解析月份并统计目标月份人数。时间复杂度为O(n),空间复杂度O(n)。

面试高手的博客 297

国家自然基金研究方向选定后,关键词只能下拉吗?——不是的,国家自然科学基金(NSFC)的关键词并不是只能下拉选择,而是:[特殊字符] “可选 + 可填”的混合模式(但以规范词为主)

你可以手动输入关键词用于表达新兴方向或细分领域✔ 适用情况:新概念(如“电场调控纳米流体”)交叉领域(如“电流体力学传热耦合”)电场调控电流体力学可以自己填,但必须以系统标准关键词为主,自定义为辅如果你愿意,我可以帮你做一件更关键的事:👉根据你题目,反向设计“最容易中标”的关键词组合 + 学科代码搭配这个比写内容本身还更影响送审质量。你可以手动输入关键词用于表达新兴方向或细分领域✔ 适用情况:新概念(如“电场调控纳米流体”)交叉领域(如“电流体力学传热耦合”)电场调控电流体力学。

qq_15963745的博客 81

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

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LeetCode41——First Missing Positive

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

上善若水 607

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Leetcode 41. First Missing Positive

41.First Missing Positive 题目链接:https://leetcode.com/problems/first-missing-positive/ Description: Given an unsorted integer array, find the smallest missingpositive integer.Your algorithm sh...

dft539533的博客 105

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【leetcode】41. First Missing Positive(缺失的第一个正数)

【leetcode】41. First Missing Positive(缺失的第一个正数) 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: ...

描绘自己的王国…… 291

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

MyCodecOdecoDecodE的博客 322

LeetCode(41) First Missing Positive

题目如下: A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ num[i+1], find a peak element and return its index. The array may contain multiple peaks,

BUILD 3688

LeetCode 41. First Missing Positive

LeetCode 41. First Missing PositiveDescriptionNoteExampleCodeConclusion Description Given an unsorted integer array, find the smallest missing positive integer. Note Your algorithm should run in O(n) ...

gq__97的博客 454

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 algorithm should run in O(n) time and uses constant

gx262091291的专栏 509

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

[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

41. First Missing Positive Leetcode Python

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 cons

hyperbolechi的专栏 1517

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 No...

dldldl1994的博客 178

【LeetCode】No.41. First Missing Positive -- Java Version

【LeetCode】No.41. First Missing Positive -- Java Version

汤姆lazy的优快云博客 299
上一篇: 【归并排序+递归】LeetCode 148. Sort List
下一篇: 【排序】LeetCode 75. Sort Colors
Allenlzcoder
博客等级 码龄10年 925粉丝 512原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值