PHP-缺失的第一个正数

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

示例 1:

输入: [1,2,0]
输出: 3
示例 2:

输入: [3,4,-1,1]
输出: 2
示例 3:

输入: [7,8,9,11,12]
输出: 1
说明:

你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。

来源:力扣(LeetCode)

class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function firstMissingPositive($nums) {
        sort($nums);
 
        $arr = [];
        for($i=0;$i<count($nums);$i++){

            if($nums[$i] > 0){
                array_push($arr,$nums[$i]);
            }

        }
        $arrs = array_unique($arr);
        $l = 1;
        foreach($arrs as $key => $val){

            if($l != $val){
                return $l;
            }
            $l++;
        }
        return count($arrs)+1;
    }
}
 
python3
 
class Solution:
    def firstMissingPositive(self, nums: List[int]) -> int:
        nums.sort()
        arr = set()
        sums = 1

        for i in nums :
            
            if int(i) > 0 :
                arr.add(i)

        arrs = list(set(arr))
        arrs.sort()

        for i in arrs:
            if int(sums) != int(i):
                return sums
            sums = sums + 1
        return len(arr)+1
 
原文地址:https://www.cnblogs.com/corvus/p/12094934.html