zoukankan      html  css  js  c++  java
  • 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
     
  • 相关阅读:
    经典的博客有价值的博客
    关于前后端接口的异常的处理
    java重新学习记载的一些资料。
    java重新开始学习
    MFC Socket
    修复 SQLite 数据库文件
    VC++源文件编码
    VC++ 中使用 std::string 转换字符串编码
    Windows代码页、区域
    UTF-7编码
  • 原文地址:https://www.cnblogs.com/corvus/p/12094934.html
Copyright © 2011-2022 走看看