LeetCode: First Missing Positive

来源:互联网 发布:淘宝网怎么找货源 编辑:程序博客网 时间:2024/06/05 08:58

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.

class Solution {public:    int firstMissingPositive(int A[], int n) {        for(int i = 0; i < n; i++)        {            if(A[i] == i+1 || A[i] > n || A[i] <= 0 || A[A[i]-1] == A[i])                continue;            int temp = A[A[i]-1];            A[A[i]-1] = A[i];            A[i] = temp;            i--;        }        for(int i = 0; i < n; i++)        {            if(A[i] != i+1)                return i+1;        }        return n+1;    }};

Round 2;

class Solution {public:    int firstMissingPositive(int A[], int n) {        if(n == 0)            return 1;        for(int i = 0; i < n; i++)        {            if(A[i] <= 0 || A[i] > n || A[i] == i+1 || A[A[i]-1] == A[i])                continue;            else            {                int temp = A[A[i]-1];                A[A[i]-1] = A[i];                A[i] = temp;                    i--;            }        }        for(int i = 0; i < n; i++)        {            if(A[i] != i+1)                return i+1;        }        return n+1;    }};


0 0
原创粉丝点击