private int segregate(int[] nums) {
        int start = 0;
        int end = nums.length -1 ;
        while (start <= end) {
            if (nums[start] <= 0) {
                start++;
            } else if (nums[end] > 0) {
                end--;
            } else {
                swap(nums, start, end);
            }
        }
        return start;
    }
https://leetcode.com/problems/first-missing-positive/
src/com/interview/array/FirstPositiveMissing.java