LeetCode First Missing Positive

来源:互联网 发布:与制工作室长板淘宝 编辑:程序博客网 时间:2024/06/06 09:50

题目:

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) {    removeNonPositive(A, n);    //使用负号记下是否出现for(int i = 0; i < n; i++) {if(abs(A[i]) <= n) {if (A[abs(A[i])-1] > 0)A[abs(A[i])-1] *= -1;}} for(int i = 0; i < n; i++)if(A[i] > 0)return i+1;return n+1;    }private://去除数组中小于等于0的数 void removeNonPositive(int A[], int &n) {int k = 0;for(int i = 0; i < n; i++) {if(A[i] > 0)A[k++] = A[i];}n = k;}};


0 0