Java实现-丢失的第一个正整数

来源:互联网 发布:阿里云备案承诺书下载 编辑:程序博客网 时间:2024/06/06 00:46

给出一个无序的正数数组,找出其中没有出现的最小正整数。

样例

如果给出 [1,2,0], return 3
如果给出 [3,4,-1,1], return 2


public class Solution {    /**         * @param A: an array of integers     * @return: an integer     */    public int firstMissingPositive(int[] A) {        // write your code here            if (A == null) {            return 1;        }        for (int i = 0; i < A.length; i++) {            while (A[i] > 0 && A[i] <= A.length && A[i] != (i+1)) {                int tmp = A[A[i]-1];                if (tmp == A[i]) {                    break;                }                A[A[i]-1] = A[i];                A[i] = tmp;            }        }        for (int i = 0; i < A.length; i ++) {                if (A[i] != i + 1) {                    return i + 1;                }        }        return A.length + 1;    }}


原创粉丝点击