First Missing Positive
来源:互联网 发布:企业快报网络报送系统 编辑:程序博客网 时间:2024/05/02 04:24
Back to Leetcode
Problem:
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.
Solution:read blog :http://www.cnblogs.com/AnnieKim/archive/2013/04/21/3034631.html
very clear explanation
One thing for remark:
when swap,
int tmp = A[i];
so next,
A[i] = A[tmp-1]; A[tmp-1] = tmp;
not A[i] = A[A[i]-1]; A[A[i]-1] = tmp
Because A[i] already changed. This may cause TLE
Be careful to details
public int firstMissingPositive(int[] A) { //using O(n) time: operate swap on array if(A.length < 1) return 1; int i = 0; while(i < A.length){ if(A[i] != i+1 && A[i] >=1 && A[i] <= A.length && A[A[i]-1] != A[i]){ // if element <0 or element > n, ignore //swap A[i] = A[A[i]-1] int tmp = A[i]; A[i] = A[tmp-1]; // A[tmp-1], A[A[i]-1] is incorrect A[tmp-1] = tmp; } else i++; } int j = 0; for(j=0; j<A.length; j++){ if(A[j] != j+1){ return j+1; // break; } } return A.length+1; }
0 0
- 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
- First Missing Positive
- [LeetCode]First Missing Positive
- First Missing Positive
- First Missing Positive
- Linux mysql开发
- 【读书札记】《怦然心动——情感化交互设计指南》
- 双分派的代码
- Ubuntu 13.10 软件中心安装Chrome失败
- codejam_2014_qualification
- First Missing Positive
- Source Insight 常用设置和快捷键大全
- 怎么查看电脑开机记录
- 没理打死了看到了
- 史可法何首乌
- Light OJ 1008- Fibsieve`s Fantabulous Birthday
- 什么东东,博客又被封了,唉,只能重开一个玩了吧,不好意思了
- 夜难寐
- 浅析epoll-为何多路复用I/O要使用epoll