leetcode筆記:First Missing Positive
一. 題目描述
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.
二. 題目分析
該題的大意是給定一個未排序的陣列,該陣列可能包含零或正負數,要求找出第一個未出現的正數。例如[1, 2, 0]
,由於第一個未出現的正整數是3
,則返回3
;[3, 4, -1, 1]
2
,則返回2
。演算法要求在O(n)
的時間複雜度及常數空間複雜度內完成。
一種方法是,先把數組裡每個正整數從i
位放到第i-1
位上,這樣就形成了有序的序列,然後檢查每一下標index
與當前元素值,就能知道當前下標所對應的正整數是否缺失,若缺失則返回下標index + 1
即可。
三. 示例程式碼
#include <iostream>
#include <vector>
using namespace std;
class Solution
{
public:
int firstMissingPositive(vector<int >& nums)
{
int n = nums.size();
for (int i = 0; i < n; ++i)
{
int temp = 0;
while (i + 1 != nums[i] && nums[i] != nums[nums[i] - 1] && nums[i] > 0)
{
temp = nums[i];
nums[i] = nums[temp - 1 ];
nums[temp - 1] = temp;
}
}
for (int i = 0; i < n; ++i)
{
if (i + 1 != nums[i])
return i + 1;
}
return n + 1;
}
};
相關推薦
leetcode筆記:First Missing Positive
一. 題目描述 Given an unsorted integer array, find the first missing positive integer. For example, Given [1,2,0] return 3, and [3,4
leetcode-First Missing Positive
href algorithm missing 排序 lan problem right ive 數組 https://leetcode.com/problems/first-missing-positive/#/description Given an unsorted
[leetcode-41-First Missing Positive]
should pla gpo miss discuss com leet algo solution Given an unsorted integer array, find the first missing positive integer. For example,
[array] leetcode - 41. First Missing Positive - Hard
put 基本原理 理解 log 開始 blog ons i+1 right leetcode - 41. First Missing Positive - Hard descrition Given an unsorted integer array, find the f
LeetCode 41. 缺失的第一個正數(First Missing Positive)
style 第一個 交換 ret etc 沒有 解題思路 ssi != 題目描述 給定一個未排序的整數數組,找出其中沒有出現的最小的正整數。 示例 1: 輸入: [1,2,0] 輸出: 3 示例 2: 輸入: [3,4,-1,1] 輸出: 2 示例 3: 輸入: [
LeetCode(41)-First Missing Positive
41-First Missing Positive Given an unsorted integer array, find the smallest missing positive integer. Example 1: Input: [1,2,0] Output: 3
python leetcode 41. First Missing Positive
考察在陣列上的操作,nums[0]=1,nums[1]=2…按照這個順序在陣列上移動元素。然後在遍歷如果nums[index]!=index+1 那麼就找到了最小的丟失數。 這裡我們對陣列中數進行判斷,而不是下標,不然會死迴圈(例如[2,2,2,2]) class Solution:
LeetCode #41 First Missing Positive
(Week 2 演算法作業) 題目 分析 演算法1 演算法2 其他演算法 總結 題目 Given an unsorted integer array, find the smallest missing positive in
【leetcode】41.(Hard)First Missing Positive
題目連結 解題思路: 歸併排序——剔重——找到最小非負數——折半查詢 這道題就是需要考慮的邊界比較多 另外就是對重複數字的處理 提交程式碼: class Solution { public int firstMissingPositive(int[]
leetcode-41-First Missing Positive
Base on the idea: With the length of the array l, we can know that the result will be range from[1, l + 1]. E.g. Now we have array[1, 2, 3], the
Leetcode 41 First Missing Positive
Given an unsorted integer array, find the smallest missing positive integer. Example 1: Input: [1,2,0] Output: 3 Example 2: Input: [3,
[LeetCode] First Missing Positive 首個缺失的正數
Given an unsorted integer array, find the smallest missing positive integer. Example 1: Input: [1,2,0] Output: 3 Example 2: Input: [3,4,-1,1]
[LeetCode]First Missing Positive(Java)
利用位置互換的思想很有趣比我用雜湊表存的剩空間,仍需仔細研究研究public class Solution { public int firstMissingPositive(int[] A)
[LeetCode] 41. First Missing Positive ☆☆☆☆☆(第一個丟失的正數)
Given an unsorted integer array, find the smallest missing positive integer. Example 1: Input: [1,2,0]Output: 3Example 2: Input: [3,4,-1,1]Output: 2Exam
Leetcode 41. First Missing Positive
array .com inpu get tor span n) nbsp sta 41. First Missing Positive 題目鏈接:https://leetcode.com/problems/first-missing-positive/ Descript
leetCode 41.First Missing Positive (第一個丟失的正數) 解題思路和方法
First Missing Positive Given an unsorted integer array, find the first missing positive integer. For example, Given [1,2,0] return 3, an
3.2.1 LeetCode陣列類題目選做(1)—— First Missing Positive & Majority Element & Product of Array Except Self
陣列題目概述 陣列的題目很多很重要,一般和其他知識點綜合應用。包括Two pointer,Binary Search,Dynamic Programming,Greedy,Backtracking 等,各類演算法都將分別選做一些題目學習交流總結。 這一系列選擇出一些非應用
LeetCode | First Missing Positive(第一個缺失的正整數)
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
[Leetcode][python]First Missing Positive/缺失的第一個正數
題目大意 給定一個未經排序的陣列,尋找第一個缺失的正整數 你的演算法應該滿足O(n)時間和常數空間複雜度 解題思路 儘可能地把陣列中不大於n(n為陣列長度)的正整數放置到下標+1與其數值相同的位置上 第一個下標+1與數值不同的數字,即為所求。
LeetCode--First Missing Positive
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