41. 缺失的第一个正数(LeetCode 热题 100)

news/2025/2/22 2:40:33

题目来源:

41. 缺失的第一个正数 - 力扣(LeetCode)


题目内容:

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


思路分析:来源:41. 缺失的第一个正数 - 力扣(LeetCode)

鸽笼:

先加个数组代表鸽笼,原数组的值代表鸽子号,原数组值放到对应笼子,从笼子遍历,得到缺少的正整数,再分情况讨论,缺少的要么是1,要么是n+1 ,以及其中. 1以及其中的不需要考虑因为位于鸽笼里面,n+1特殊处理


代码实现:

class Solution {
public:
    int firstMissingPositive(vector<int>& nums) {
        int n=nums.size();
        vector<int> aaa(nums.size()+1);
        for(auto i:nums)
            if(n>=i&&i>0)
             aaa[i]++;

        for(int i=1;i<=n;i++)
            if(aaa[i]==0)
            return i;
  return n+1;
}
};

题目心得:

  1. 很棒的一个思想,要积累一下。
  2. 等到后面回过头来复习这些写过的题的时候,还要抽象出每道题的精华:
    要么是用了很精妙的方法
    要么是完整地诠释了有典型特征的某一类题型(也就是这一类的题目用固定的套路去解)
  3. 有些函数/算法模板,不同的人用不同的实现方法,要积累出自己的,考试的时候又快又准的写出来


http://www.niftyadmin.cn/n/5861533.html

相关文章

2000字,极简版华为数字化转型方法论

​作为国内科技行业的领军者&#xff0c;华为的成功经验为众多企业提供了宝贵的借鉴。本文将围绕准备、规划和执行三个阶段展开&#xff0c;结合华为的实践案例&#xff0c;深入剖析其数字化转型的方法论&#xff0c;希望能为您的企业数字化转型提供有益的参考。 一、数字化转型…

机器学习,我们主要学习什么?

机器学习的发展历程 机器学习的发展历程&#xff0c;大致分为以下几个阶段&#xff1a; 1. 起源与早期探索&#xff08;20世纪40年代-60年代&#xff09; 1949年&#xff1a;Hebb提出了基于神经心理学的学习机制&#xff0c;开启了机器学习的先河1950年代&#xff1a;机器学习的…

Error [ERR_REQUIRE_ESM]: require() of ES Module

报错信息&#xff1a; 【报错】Message.js 导入方式不对&#xff0c;用的是 ES Moudle 的语法&#xff0c;提示使用 import 引入文件 项目开发没有用到 js-message 依赖&#xff0c;是 node-ipc 依赖中用到的 js-message 依赖&#xff0c; node-ipc 中限制 js-message 版本&a…

最新华为 HCIP-Datacom(H12-821)2025.2.20

最新 HCIP-Datacom&#xff08;H12-821&#xff09;&#xff0c;完整题库请扫描上方二维码访问。 如图所示为某OSPF网络&#xff0c;已知R1和R2已,成功建立邻接关系&#xff0c;现一工程师在R2上配置了图中命令。那么在R2上查看LSDB时&#xff0c;可能存在以下哪些LSA? A&…

React 源码揭秘 | CompleteWork “归“的过程

上篇说了BeginWork的流程&#xff0c;我们继续看workLoop.ts/performUnitOfWork函数 /*** 处理单个fiber单元 包含 递&#xff0c;归 2个过程* param fiber*/ function performUnitOfWork(fiber: FiberNode) {// beginWork 递的过程const next beginWork(fiber, wipRootRende…

【蓝桥杯集训·每日一题2025】 AcWing 6134. 哞叫时间II python

6134. 哞叫时间II Week 1 2月20日 农夫约翰正在试图向埃尔茜描述他最喜欢的 USACO 竞赛&#xff0c;但她很难理解为什么他这么喜欢它。 他说「竞赛中我最喜欢的部分是贝茜说『现在是哞哞时间』并在整个竞赛中一直哞哞叫」。 埃尔茜仍然不理解&#xff0c;所以农夫约翰将竞赛…

蓝桥杯备考:贪心算法之矩阵消除游戏

这道题是牛客上的一道题&#xff0c;它呢和我们之前的排座位游戏非常之相似&#xff0c;但是&#xff0c;排座位问题选择行和列是不会改变元素的值的&#xff0c;这道题呢每每选一行都会把这行或者这列清零&#xff0c;所以我们的策略就是先用二进制把选择所有行的情况全部枚举…

性格测评小程序10生成报告

目录 1 修改数据源2 创建云函数2.1 安装依赖文件2.2 编写主方法 3 启用大模型4 搭建前端逻辑5 最终效果总结 这是我们测评小程序的最后一篇内容&#xff0c;当用户提交了测评&#xff0c;就需要依据测评的结果生成报告。如果按照传统开发思路&#xff0c;需要建表然后录入不同性…