Rearrange array in alternate positive and negative

Rearrange array in alternating positive & negative items

Input: arr[] = {1, 2, 3, -4, -1, 4}

Output : // Output: arr[] = {-4, 1, -1, 2, 3, 4}

Code
private static int[] reArrangeArray(Integer[] nums) {

        ArrayList<Integer> positive = new ArrayList<>();
        ArrayList<Integer> negative = new ArrayList<>();

        for (int i = 0; i < nums.length; i++) {
            if (nums[i] >= 0) {
                positive.add(nums[i]);
            } else {
                negative.add(nums[i]);
            }
        }
        int[] result = new int[nums.length];
        int count=0 ;
        for (int i = 0; i < nums.length; i++) {
            count=i;
            if (negative.size() == 0 || positive.size() == 0) {
                break;
            }
            if (i % 2 == 0) {
                result[i] = positive.get(0);
                positive.remove(0);
            } else {
                result[i] = negative.get(0);
                negative.remove(0);
            }

        }

        if (negative.size() != 0) {
            while (negative.size() != 0) {
                result[count] = negative.get(0);
                negative.remove(0);
                count++;
            }
        }
        if (positive.size() != 0) {
            while (positive.size() != 0) {
                result[count] = positive.get(0);
                positive.remove(0);
                count++;
            }
        }
        return result;
    }
Scroll to Top