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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP