LeetCode 41. First Missing Positive

来源:互联网 发布:团圆之后知乎 编辑:程序博客网 时间:2024/06/05 17:53

描述

给出一个未排序的数组,找出丢失的数,从1开始的

解决

遍历数组,交换数,使得每个数对应索引号。最后再遍历看哪一个数不对,返回即可。


class Solution {public:    int firstMissingPositive(vector<int>& nums) {        int length = nums.size();        for (int i = 0; i < length; ++i)        {            while (nums[i] > 0 && nums[i] < length && nums[i] != i + 1 && nums[i] != nums[nums[i] - 1])                swap(nums[i], nums[nums[i] - 1]);        }            for (int i = 0; i < length; ++i)        {            if (i + 1 != nums[i])                return i + 1;        }        return length + 1;    }};
0 0
原创粉丝点击