很玄学,用符号代表数字是否在arr中出现过。
牛客的测试样例不完整,建议取leetcode官网:https://leetcode.com/problems/first-missing-positive/solution/

#
# return the min number
# @param arr int整型一维数组 the array
# @return int整型
#
class Solution:
    def minNumberdisappered(self , arr ):
        # write code here
        if 1 not in arr:
            return 1
        else:
            n = len(arr)
            for i in range(n):
                if arr[i] <= 0 or arr[i] > n:
                    arr[i] = 1
            for i in range(n):
                a = abs(arr[i])
                if a == n:
                    arr[0] = -abs(arr[0])
                else:
                    arr[a] = -abs(arr[a])
            for i in range(1, n):
                if arr[i] > 0:
                    return i
            if arr[0] > 0:
                return n
            else:
                return n+1