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;
    }
};
相关推荐
lqqjuly7 分钟前
MLA — 多头潜在注意力深度解析
深度学习·神经网络·算法
吴可可12327 分钟前
SolidWorks草图转三维DWG技巧
算法
tyung1 小时前
Go 手写 Wait-Free SPSC 无界队列:无 CAS、无锁、泛型节点池
数据结构·后端·go
redaijufeng1 小时前
C++雾中风景7:闭包
c++·算法·风景
Chen_harmony1 小时前
一、数据结构概念和复杂度计算
数据结构
小欣加油1 小时前
leetcode287寻找重复数
数据结构·c++·算法·leetcode
尽兴-2 小时前
2.1 向量基础:Embedding、余弦相似度、欧氏距离、向量检索
算法·embedding·欧氏距离·向量检索·余弦相似度
Black蜡笔小新2 小时前
自动化AI算法训练服务器DLTM训推一体工作站赋能多行业智能化升级
人工智能·算法·自动化
怪兽学LLM3 小时前
LeetCode 438 找到字符串中所有字母异位词(Python 固定滑动窗口+字符计数解法)
python·算法·leetcode
满怀冰雪3 小时前
第04篇-双指针算法-从有序数组到回文判断的高频解法
java·算法