zoukankan      html  css  js  c++  java
  • [LeetCode] First Missing Positive

    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.

    在原数组A上将数组A中的数进行排序....时间复杂度O(n),空间复杂度O(1)

    class Solution {
    public:
        int firstMissingPositive(int A[], int n) {
            if(n==0)
                return 1;
            for(int i=0;i<n;i++){
                if(A[i] <= n && A[i]>0 &&  A[i] != i+1){
                    if(A[A[i]-1] != A[i]){
                        int tmp = A[A[i]-1];
                        A[A[i]-1] = A[i];
                        A[i] = tmp;
                        i--;
                    }
                }
            }//end for
            for(int i=0;i<n;i++){
                if(A[i] != i+1)
                    return i+1;
            }
            return n+1;
        }
    };
  • 相关阅读:
    生成密码
    生成密码
    C#委托
    C#委托
    C#委托
    最近所有博客
    win10 uwp 读写XML
    win10 uwp 读写XML
    win10 uwp 读写XML
    win10 uwp 绑定密码
  • 原文地址:https://www.cnblogs.com/Xylophone/p/3933351.html
Copyright © 2011-2022 走看看