第乙個缺失的正整數 leetcode

2021-08-29 02:34:43 字數 667 閱讀 9171

為什麼不能nums這樣賦值呢?

nums[nums[i]] = nums[i]呢

例如 如果陣列中存在3 那麼我們可不可以nums[3] = 3呢?

這樣最後的結果會不會和 [0, 1, 2, 3, 4, 5]嗎?

然後對這個陣列從1開始遍歷不就好了嗎

這樣做事不行的,因為[1,2,3,0]這樣最後的結果就是[1, 1, 0, 3]。

因為值1 會對陣列中索引為1的值進行修改,然後陣列中索引為1的原來的值就會沒了。

而加n,然後對這個索引出的值求對n的餘數, 就還是原來的數了。

所以這樣是不行的。

class solution:

def firstmissingpositive(self, nums):

n = len(nums)

for i in range(n):

if nums[i] < 0 or nums[i] >= n:

nums[i] = 0

for i in range(n):

nums[nums[i] % n] += n

for i in range(1, n):

if nums[i] < n:

return i

return n

Python 第乙個缺失的正整數

給定乙個陣列a 0 n 1 找到從1開始,第乙個不在陣列中的正整數。如3,5,1,2,3,7,14,8輸出4 思路 將找到的元素放到正確的位置上,如果最終發現某個元素一直沒有找到,則該元素即為所求。迴圈不變式 如果某命題初始為真,且每次更改後仍然保持該命題為真,則若干次更改後該命題仍然為真。為表述方...

Leetcode41 缺失的第乙個正整數

question 給你乙個未排序的整數陣列 nums 請你找出其中沒有出現的最小的正整數。高階 你可以實現時間複雜度為 o n 並且只使用常數級別額外空間的解決方案嗎?leetcode 41 資料範圍 0 n ums.leng th 300 0 nums.length 300 0 n ums.len...

第乙個缺失的整數

第乙個缺失的整數 給定乙個長度為n的陣列a 0,n 1 從1開始,找到第乙個不在陣列中的正整數。如 3,9,8,1,6,32 輸出為2。思路 求解該問題可以有三種策略,分別是暴力破解法 bitmap法和迴圈不變式方法。方法1 暴力破解法 看到這個題後,既然是找從1開始第乙個不在陣列a中的正整數,那最...