LintCode_189 First Missing Positive

来源:互联网 发布:d3.js 地图轨迹点 编辑:程序博客网 时间:2024/06/11 08:19

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

Example

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

Challenge 

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


转化成一组数中只有一个出现一次的问题。

class Solution {public:    /**         * @param A: a vector of integers     * @return: an integer     */    int firstMissingPositive(vector<int> A) {        // write your code here        for (int i = 0; i < A.size(); i++) {            if (A[i] <= A.size() && A[i] > 0 && A[i] != i + 1 && A[A[i] - 1] != A[i]) {                swap(A[A[i] - 1], A[i]);                i--;            }        }        for (int i = 0; i < A.size(); i++) {            if (A[i] != i + 1)                return i + 1;        }        return A.size() + 1;    }};




0 0
原创粉丝点击