First Missing Positive

来源:互联网 发布:windows.old能不能删除 编辑:程序博客网 时间:2024/06/06 13:02

Given an unsorted integer array, find the first missing positive integer.

For example,
Given [1,2,0] return 3,
and [3,4,-1,1] return 2.

Your algorithm should run in O(n) time and uses constant space.


Solution:

class Solution {public:    int firstMissingPositive(vector<int>& nums) {        int len = nums.size();        for(int i = 0; i < len; ++i)        {            while(nums[i] != i + 1 && nums[i] > 0 && nums[i] <= len && nums[i] != nums[nums[i]-1])            {                swap(nums[nums[i]-1], nums[i]);            }        }        int i = -1;        while(++i < len)        {            if(nums[i] != i + 1) break;        }        return i + 1;    }};


0 0
原创粉丝点击