w3resource

Java: Find the new length of a given sorted array

Java Basic: Exercise-132 with Solution

Write a Java program to find the updated length of a given sorted array where duplicate elements appear at most twice.

Pictorial Presentation:

Java Basic Exercises: Find the new length of a given sorted array.

Sample Solution:

Java Code:

import java.util.Arrays;

class Solution {
    // Static method to remove duplicates from the given array, allowing at most two duplicates
    static int remove_Duplicates_twice(int[] nums) {
        // Check for invalid or empty input array
        if (nums == null || nums.length == 0) {
            return 0;
        }

        int index = 1; // Initialize the index for the resulting array
        for (int i = 2; i < nums.length; i++) {
            // Check if the current element is different from the element at 'index',
            // or if it's the second occurrence of a duplicate, but not the third
            if (nums[i] != nums[index] || (nums[i] == nums[index] && nums[i] != nums[index - 1])) {
                index++; // Increment the index for the resulting array
                nums[index] = nums[i]; // Copy the unique or second occurrence of a duplicate element
            }
        }
        // The new length of the array is one more than the 'index'
        return index + 1;
    }

    /* Driver program to test above functions */
    public static void main(String[] args) {
        int[] nums = {1, 1, 2, 3, 3, 3, 4, 5, 6, 7, 7, 7, 7};
        System.out.println("Original array: " + Arrays.toString(nums));
        System.out.println("The length of the original array is: " + nums.length);
        System.out.println("After removing duplicates, the new length of the array is: " + remove_Duplicates_twice(nums));
    }
}

Sample Output:

Original array: [1, 1, 2, 3, 3, 3, 4, 5, 6, 7, 7, 7, 7]
The length of the original array is: 13
After removing duplicates, the new length of the array is: 10

Flowchart:

Flowchart: Java exercises: Find the new length of a given sorted array.

Java Code Editor:

Previous: Write a Java program to find the new length of a given sorted array where each element appear only once (remove the duplicates ).
Next: Write a Java program to find a path from top left to bottom in right direction which minimizes the sum of all numbers along its path.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/java-exercises/basic/java-basic-exercise-132.php