zoukankan      html  css  js  c++  java
  • First Missing Positive

    问题:给定一个无序数组,输出其中不存在的最小正整数

    示例:

    输入:[1,3,4]

    输出:2

    输入:[2,-1,1,4,5,4]

    输出:3

    输入:[6,5,4,7,8]

    输出:1

    解决思路:遍历数组中的元素i,如果为正整数且不大于数组的长度,则将其调整到 i - 1的位置处。之后,对调整后的数组进行遍历,如果该位置的元素不等于位置数加1,则返回位置数加1

    class Solution(object):
        def firstMissingPositive(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            length = len(nums)
            for i in range(length):
                while length >= nums[i] > 0 and nums[i] != i+1 and nums[i] != nums[nums[i]-1]:
                    nums[nums[i]-1],nums[i] = nums[i],nums[nums[i]-1]
            for i in range(length):
                if nums[i] != i + 1:
                    return i + 1
            return length+1
  • 相关阅读:
    解决express不是内部或外部命令
    spring ioc认识
    Filter编码过滤
    call、apply、bind
    js面向对象浅析
    由clientWidth到document
    401
    删除页面中Form下面隐藏的ViewStatue
    asp.net 下载
    day98
  • 原文地址:https://www.cnblogs.com/wenqinchao/p/10824772.html
Copyright © 2011-2022 走看看