First Missing Integer
来源:互联网 发布:淘宝400电话 编辑:程序博客网 时间:2024/06/05 10:34
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.
11/1
近brutal-force
public class Solution { public int firstMissingPositive(int[] A) { // strategy: let A[i] store i+1, thus return the first i s.t. A[i] != i+1 int len = A.length; boolean[] shown = new boolean[len+1]; for(int a:A){ if(a <= len && a>= 0){ if(!shown[a]){ shown[a] = true; } } } for(int i=1; i<=len; i++){ if(!shown[i]) return i; } return len+1; } }
比较tricky的一种解法, 特别小心err2处的错误
public class Solution { public int firstMissingPositive(int[] A) { // strategy: let A[i] store i+1, thus return the first i s.t. A[i] != i+1 int len = A.length; for(int i=0; i<len; i++){ while(A[i] != i+1 && A[i] <= len && A[i] > 0 && A[i] != A[A[i]-1]){ // err1: A[i] > 0 // swap A[i] with A[A[i]-1] int tmp = A[i]; A[i] = A[A[i]-1]; A[tmp-1] = tmp; // err2: very careful, A[i] has changed above, so use tmp in both place! } } for(int i=0; i<len; i++){ if(A[i] != i+1){ return i+1; } } return len+1; } }
classic solution:
O(1) space and O(n) for time.
0 0
- First Missing Integer
- [LeetCode]041-First Missing Positive Integer
- First Missing Positive Given an unsorted integer array, find the first missing positive integer. Fo
- Given an unsorted integer array, find the first missing positive integer.
- LeetCode: First Missing Positive
- LeetCode First Missing Positive
- LeetCode: First Missing Positive
- [Leetcode] First Missing Positive
- leetcode12: First Missing Positive
- First Missing Positive
- [LeetCode] First Missing Positive
- [Leetcode] First Missing Positive
- leetcode First Missing Positive
- LeetCode First Missing Positive
- [leetcode] first missing positive
- First Missing Positive
- LeetCode: First Missing Positive
- First Missing Positive
- Android 有关爬墙头儿的那点儿事儿 - 眼下出行难,不光车多、路还窄呀!
- Triangle
- hadoop中map和reduce的数量设置
- Objective-C (NSObject isKindOfClass、isMemberOfClass 、conformsToProtocol、isSubclassOfClass)
- USACO Electric Fences 解题报告
- First Missing Integer
- 交叉编译Cubietruck的u-boot
- dfgdfg
- Binary Tree: Inorder Traversal
- fdgdfg
- iOS 常见错误, 失误
- Max-Sum Subarray
- 解决CentOS 6.5更新后无法联网的问题以及利用yum的 yum-versionlock 插件锁定某个软件版本不升级的方法
- 黑马程序员—C语言笔记—了解Mac的基本使用和C语言基础语法