41. First Missing Positive(找到陣列中未出現的最小正整數)
Total Accepted: 87074
Total Submissions: 348588
Difficulty: Hard
Contributors: Admin
Given an unsorted integer array, find the first missing positive integer.For example,
Given [1,2,0] return 3,
and [3,4,-1,1] return 2.Your algorithm should run in O(n) time and uses constant space.
方法:
遍歷一遍,把正確合法的正整數方在正確的位置上即可。比如我們找到元素5,就把5換到A[4]上,因為陣列從0下標開始。最終結果陣列A[i] != i+1 的就是該位置上的正整數沒有出現過,返回i+1即可。
程式碼如下:
class Solution(object):
def firstMissingPositive(self, nums):
n = len(nums)
for i in range(0, n):
while nums[i] > 0 and nums[i] <= n and nums[nums[i]-1] != nums[i]:
nums[nums[i]-1], nums[i] = nums[i], nums[nums[i]-1]
for i in range(0, n):
if nums[i] != i+1:
return i+1
return n+1
呵呵,人生苦短,我用Python。
相關文章
- 陣列中未出現的最小正整數陣列
- Leetcode 41 First Missing PositiveLeetCode
- [LeetCode Python3] 41. First Missing Positive 一步步優化LeetCodePython優化
- 如何從整數陣列中找到最大和最小數陣列
- 找到無序陣列中最小的k個數陣列
- leetcode:41. 缺失的第一個正數(困難,陣列)LeetCode陣列
- 找到陣列中出現特定次數數字的問題陣列
- 448. 找到所有陣列中消失的數字陣列
- 淦448. 找到所有陣列中消失的數字陣列
- LeetCode-448-找到所有陣列中消失的數字LeetCode陣列
- 【陣列】1539. 第 k 個缺失的正整數(簡單)陣列
- 旋轉陣列中的最小元素陣列
- 力扣448. 找到所有陣列中消失的數字力扣陣列
- 劍指Offer-把陣列中的數排成一個最小的數陣列
- 陣列中每個陣列元素出現的次數陣列
- 找到兩個陣列中的公共元素陣列
- JZ-032-把陣列排成最小的數陣列
- 尋找兩個正序陣列中的中位數陣列
- 【LeetCode-陣列】陣列式整數加法LeetCode陣列
- 求兩個正整數的最大公約數與最小公倍數--C#實現C#
- 如何在1到100的整數陣列上找到缺失的數字陣列
- 在其它數都出現k次的陣列中找到只出現一次的數陣列
- LeetCode 41. 缺失的第一個正數LeetCode
- 面試:Java 實現查詢旋轉陣列的最小數字面試Java陣列
- 給定陣列中找到最大的兩個數陣列
- GO實現:leetcode之尋找兩個正序陣列的中位數GoLeetCode陣列
- 劍指offer:旋轉陣列的最小數字陣列
- 劍指offer 旋轉陣列的最小數字陣列
- [求解]陣列,分成倆個陣列,陣列值之和的相差最小。陣列
- 輸入一個整數陣列,輸出奇偶數相間排列的陣列陣列
- LeetCode989——陣列形式的整數加法LeetCode陣列
- 劍指offer-轉陣列的最小數字-php陣列PHP
- 劍指Offer-34-把陣列排成最小的數陣列
- 劍指offer——把陣列排成最小的數C++陣列C++
- 給定一個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列中出現次數大於 ⌊ n/2 ⌋ 的元素。陣列
- 4. 尋找兩個正序陣列的中位數陣列
- 演算法41. 缺失的第一個正數演算法
- Swift-Tips之整數轉陣列Swift陣列
- 正則實現陣列濾重陣列