Python 中的第一個缺失的正數


假設我們有一個無序整數陣列,我們必須找到最小的缺失正數。因此,如果陣列為 [4, -3, 1, -1],那麼結果將為 2。

要解決這個問題,我們將遵循以下步驟 −

  • 設定 i := 0,並在所有數字之前新增一個 0 來更新陣列 nums

  • 對於 i 在 0 到 nums 長度範圍內

    • while nums[i] >= 0 且 nums[i] < nums 長度且 nums[nums[i]] 不是 nums[i] −

      • nums[nums[i]] := nums[i]

      • nums[i] := nums[nums[i]]

  • num := 1

  • 對於 i 在 1 到 nums 長度範圍內

    • 如果 num = nums[i],則將 num 增加 1

  • 返回 num

示例

讓我們看看以下實現以獲得更好的理解 −

 現場演示

class Solution(object):
   def firstMissingPositive(self, nums):
   i = 0
   nums = [0] + nums
   for i in range(len(nums)):
      while nums[i]>=0 and nums[i]<len(nums) and nums[nums[i]]!=nums[i]:
         nums[nums[i]],nums[i] = nums[i],nums[nums[i]]
      num = 1
      for i in range(1,len(nums)):
         if num == nums[i]:
            num+=1
      return num

ob = Solution()
print(ob.firstMissingPositive([4,-3,1,-1]))

輸入

[4,-3,1,-1]

輸出

2

更新於:26-5 月-2020

768 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始使用
廣告
© . All rights reserved.