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.