[数组]leetcode41:缺失的第一个正数(hard)

编程入门 行业动态 更新时间:2024-10-25 11:29:36

[数组]leetcode41:缺失的第一个<a href=https://www.elefans.com/category/jswz/34/1738273.html style=正数(hard)"/>

[数组]leetcode41:缺失的第一个正数(hard)

题目:

题解:

  • 遍历一次数组把大于等于1的和小于数组大小的值放到原数组对应位置,然后再遍历一次数组查当前下标是否和值对应,如果不对应那这个下标就是答案,否则遍历完都没出现那么答案就是数组长度加1。

代码如下:

class Solution {
public:int firstMissingPositive(vector<int>& nums) {for(int i=0;i<nums.size();++i){//循环结束的条件为,一旦某个数字不能回到它应该回到的位置时就结束了,比如-1就不能回到-1的位置while(nums[i]>0&&nums[i]<=nums.size()&&nums[i]!=nums[nums[i]-1])swap(nums[i],nums[nums[i]-1]);}//寻找第一个逃票的人,若找不到就为数组长度+1for(int i=0;i<nums.size();++i)if(nums[i]!=i+1)return i+1;return nums.size()+1;}
};

更多推荐

[数组]leetcode41:缺失的第一个正数(hard)

本文发布于:2023-07-28 18:53:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1279928.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:正数   第一个   数组   缺失   hard

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!