1. 程式人生 > >leetcode筆記:First Missing Positive

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