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
  • 相关阅读:
    ASP.NET Repeater-重复器
    ADO.NET数据库访问技术
    类库和委托、 is 和as
    小知识
    多态
    封装和继承
    资源管理器
    简易计算器
    小知识点
    jquery cookie页面传值和jquery监听页面刷新
  • 原文地址:https://www.cnblogs.com/wenqinchao/p/10824772.html
Copyright © 2011-2022 走看看