leetcode 41

这题有点儿烧脑了,就是没有出现的最小的正数一定是 1 到 n + 1 这个范围的,为啥呢,因为总共是 n 个元素,我们考虑最极端的情况,全是正整数,那么 1 到 n 没有缺失,那最小的正整数就是 n + 1 了,如果有负数,那么负数肯定就不算了,比如说 -1 1 2 ,n == 3, 预期的结果是 3 ,在 1 到 4 这个范围内,所以还是比较秀的。这个结论,就是这个题的关键部分。然后我们可以考虑,一个比较大的数字,比如说,2147483647 是最大的正整数,那么不影响结论呀,我们输出缺失的最小的正整数,直接输出 1 就完事了。这个困难题绝对的纸老虎。

cpp 复制代码
class Solution {
public:
    int firstMissingPositive(vector<int>& nums) {
        int n = nums.size();
        for ( int i = 0; i < n; i++ ) {
            while ( nums[i] >= 1 && nums[i] <= n && nums[i] != nums[nums[i] - 1] ) {
                swap( nums[i], nums[nums[i] - 1] );
            }
        }
        for ( int i = 0; i < n; i++ ) {
            if ( nums[i] != i + 1 ) {
                return i + 1;
            }
        }
        return n + 1;
    }
};
相关推荐
老师我太想进步了20261 小时前
【数据结构-3】算法美学之降复杂度
数据结构·算法
机器人零零壹6 小时前
技术白皮书:iRobotCAM如何解决机器人激光切割应用中的核心难点,从CAD离线编程到双目视觉定位与轨迹自适应提升复杂空间曲线切割的精度、效率与柔性化水平
人工智能·算法
ZhengEnCi9 小时前
大模型的分类到底怎么分:从基础模型到推理模型、从通用到专用的完整图谱
算法
取名真是10 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
罗西的思考10 小时前
【轻量化复刻大模型 / KIMI K3】KDA 模块交互式演示
人工智能·算法·机器学习
nm_zfyjt12 小时前
信息流广告投放优化实践:线索成本评估模型与转化链路重构(家装建材案例)
算法·重构·内蒙古朋友圈广告服务商·内蒙古朋友圈获客
w_zero_one13 小时前
算法--构造
java·数据结构·算法
其实防守也摸鱼14 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php
小超人诞生日记15 小时前
C++ 智能指针的使用及其原理详解
c++·算法