public int firstMissingPositive1(int[] A) {
		if(A == null || A.length == 0) return 1;
		boolean[] visit = new boolean[A.length];
		
		for(int i = 0; i < A.length; i++) {
			if(A[i] > 0 && A[i] <= A.length)
				visit[A[i] - 1] = true;
		}
		
		for(int i = 0; i < A.length; i++)
			if(visit[i] == false) return i+1;
		
		return A.length + 1;
	}