[leetcode-41-First Missing Positive]
Posted hellowOOOrld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[leetcode-41-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.
思路:
Put each number in its right place.
For example:
When we find 5, then swap it with A[4].
At last, the first place where its number is not right, return the place + 1.
int firstMissingPositive(int A[], int n) { for(int i = 0; i < n; ++ i) while(A[i] > 0 && A[i] <= n && A[A[i] - 1] != A[i]) swap(A[i], A[A[i] - 1]); for(int i = 0; i < n; ++ i) if(A[i] != i + 1) return i + 1; return n + 1; }
参考:
https://discuss.leetcode.com/topic/8293/my-short-c-solution-o-1-space-and-o-n-time
以上是关于[leetcode-41-First Missing Positive]的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 41. First Missing Positive
[array] leetcode - 41. First Missing Positive - Hard
[leetcode-41-First Missing Positive]
Leetcode 41: First Missing Positive