Remove Duplicates From Sorted Array 334 Easy

Remove duplicates from sorted array

View Discussion

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    Like Article

    Given a sorted array, the task is to remove the duplicate elements from the array.

    Examples:

    Input  : arr[] = {2, 2, 2, 2, 2} Output : arr[] = {2}          new size = 1  Input  : arr[] = {1, 2, 2, 3, 4, 4, 4, 5, 5} Output : arr[] = {1, 2, 3, 4, 5}          new size = 5

    Method 1: (Using extra space)

    1. Create an auxiliary array temp[] to store unique elements.
    2. Traverse input array and one by one copy unique elements of arr[] to temp[]. Also keep track of count of unique elements. Let this count be j.
    3. Copy j elements from temp[] to arr[] and return j

    Complete Interview Preparation - GFG Implementation:

    C++

    #include <iostream>

    using namespace std;

    int removeDuplicates( int arr[], int n)

    {

    if (n == 0 || n == 1)

    return n;

    int temp[n];

    int j = 0;

    for ( int i = 0; i < n - 1; i++)

    if (arr[i] != arr[i + 1])

    temp[j++] = arr[i];

    temp[j++] = arr[n - 1];

    for ( int i = 0; i < j; i++)

    arr[i] = temp[i];

    return j;

    }

    int main()

    {

    int arr[] = { 1, 2, 2, 3, 4, 4, 4, 5, 5 };

    int n = sizeof (arr) / sizeof (arr[0]);

    n = removeDuplicates(arr, n);

    for ( int i = 0; i < n; i++)

    cout << arr[i] << " " ;

    return 0;

    }

    C

    #include <stdio.h>

    int removeDuplicates( int arr[], int n)

    {

    if (n == 0 || n == 1)

    return n;

    int temp[n];

    int j = 0;

    for ( int i = 0; i < n - 1; i++)

    if (arr[i] != arr[i + 1])

    temp[j++] = arr[i];

    temp[j++] = arr[n - 1];

    for ( int i = 0; i < j; i++)

    arr[i] = temp[i];

    return j;

    }

    int main()

    {

    int arr[] = { 1, 2, 2, 3, 4, 4, 4, 5, 5 };

    int n = sizeof (arr) / sizeof (arr[0]);

    n = removeDuplicates(arr, n);

    for ( int i = 0; i < n; i++)

    printf ( "%d " , arr[i]);

    return 0;

    }

    Java

    class Main {

    static int removeDuplicates( int arr[], int n)

    {

    if (n == 0 || n == 1 )

    return n;

    int [] temp = new int [n];

    int j = 0 ;

    for ( int i = 0 ; i < n - 1 ; i++)

    if (arr[i] != arr[i + 1 ])

    temp[j++] = arr[i];

    temp[j++] = arr[n - 1 ];

    for ( int i = 0 ; i < j; i++)

    arr[i] = temp[i];

    return j;

    }

    public static void main(String[] args)

    {

    int arr[] = { 1 , 2 , 2 , 3 , 4 , 4 , 4 , 5 , 5 };

    int n = arr.length;

    n = removeDuplicates(arr, n);

    for ( int i = 0 ; i < n; i++)

    System.out.print(arr[i] + " " );

    }

    }

    Python3

    def removeDuplicates(arr, n):

    if n = = 0 or n = = 1 :

    return n

    temp = list ( range (n))

    j = 0 ;

    for i in range ( 0 , n - 1 ):

    if arr[i] ! = arr[i + 1 ]:

    temp[j] = arr[i]

    j + = 1

    temp[j] = arr[n - 1 ]

    j + = 1

    for i in range ( 0 , j):

    arr[i] = temp[i]

    return j

    arr = [ 1 , 2 , 2 , 3 , 4 , 4 , 4 , 5 , 5 ]

    n = len (arr)

    n = removeDuplicates(arr, n)

    for i in range (n):

    print ( "%d" % (arr[i]), end = " " )

    C#

    using System;

    class GFG {

    static int removeDuplicates( int []arr, int n)

    {

    if (n == 0 || n == 1)

    return n;

    int []temp = new int [n];

    int j = 0;

    for ( int i = 0; i < n - 1; i++)

    if (arr[i] != arr[i+1])

    temp[j++] = arr[i];

    temp[j++] = arr[n-1];

    for ( int i = 0; i < j; i++)

    arr[i] = temp[i];

    return j;

    }

    public static void Main ()

    {

    int []arr = {1, 2, 2, 3, 4, 4, 4, 5, 5};

    int n = arr.Length;

    n = removeDuplicates(arr, n);

    for ( int i = 0; i < n; i++)

    Console.Write(arr[i] + " " );

    }

    }

    Javascript

    <script>

    function removeDuplicates(arr, n)

    {

    if (n==0 || n==1)

    return n;

    var temp = new Array(n);

    var j = 0;

    for ( var i=0; i<n-1; i++)

    if (arr[i] != arr[i+1])

    temp[j++] = arr[i];

    temp[j++] = arr[n-1];

    for ( var i=0; i<j; i++)

    arr[i] = temp[i];

    return j;

    }

    var arr = [1, 2, 2, 3, 4, 4, 4, 5, 5];

    var n = arr.length;

    n = removeDuplicates(arr, n);

    for ( var i=0; i<n; i++)

    document.write( arr[i]+ " " );

    </script>

    Time Complexity : O(n)
    Auxiliary Space : O(n)

    Method 2: (Constant extra space)

    Just maintain a separate index for same array as maintained for different array in Method 1.

    Implementation:

    C++

    #include<iostream>

    using namespace std;

    int removeDuplicates( int arr[], int n)

    {

    if (n==0 || n==1)

    return n;

    int j = 0;

    for ( int i=0; i < n-1; i++)

    if (arr[i] != arr[i+1])

    arr[j++] = arr[i];

    arr[j++] = arr[n-1];

    return j;

    }

    int main()

    {

    int arr[] = {1, 2, 2, 3, 4, 4, 4, 5, 5};

    int n = sizeof (arr) / sizeof (arr[0]);

    n = removeDuplicates(arr, n);

    for ( int i=0; i<n; i++)

    cout << arr[i] << " " ;

    return 0;

    }

    Java

    class Main

    {

    static int removeDuplicates( int arr[], int n)

    {

    if (n == 0 || n == 1 )

    return n;

    int j = 0 ;

    for ( int i = 0 ; i < n- 1 ; i++)

    if (arr[i] != arr[i+ 1 ])

    arr[j++] = arr[i];

    arr[j++] = arr[n- 1 ];

    return j;

    }

    public static void main (String[] args)

    {

    int arr[] = { 1 , 2 , 2 , 3 , 4 , 4 , 4 , 5 , 5 };

    int n = arr.length;

    n = removeDuplicates(arr, n);

    for ( int i= 0 ; i<n; i++)

    System.out.print(arr[i]+ " " );

    }

    }

    Python3

                                      # Python3 program to remove # duplicate elements  # This function returns new  # size of modified array def removeDuplicates(arr, n):     if n == 0 or n == 1:         return n      # To store index of next     # unique element     j = 0      # Doing same as done     # in Method 1 Just     # maintaining another      # updated index i.e. j     for i in range(0, n-1):         if arr[i] != arr[i+1]:             arr[j] = arr[i]             j += 1      arr[j] = arr[n-1]     j += 1     return j  # Driver code arr = [1, 2, 2, 3, 4, 4, 4, 5, 5] n = len(arr)  # removeDuplicates() returns # new size of array. n = removeDuplicates(arr, n)  # Print updated array for i in range(0, n):     print (" %d "%(arr[i]), end = " ")                              

    C#

    using System;

    class GfG {

    static int removeDuplicates( int []arr, int n)

    {

    if (n == 0 || n == 1)

    return n;

    int j = 0;

    for ( int i = 0; i < n - 1; i++)

    if (arr[i] != arr[i + 1])

    arr[j++] = arr[i];

    arr[j++] = arr[n - 1];

    return j;

    }

    public static void Main ()

    {

    int []arr = {1, 2, 2, 3, 4, 4,

    4, 5, 5};

    int n = arr.Length;

    n = removeDuplicates(arr, n);

    for ( int i = 0; i < n; i++)

    Console.Write(arr[i] + " " );

    }

    }

    Javascript

    <script>

    function removeDuplicates(arr , n) {

    if (n == 0 || n == 1)

    return n;

    var j = 0;

    for (i = 0; i < n - 1; i++)

    if (arr[i] != arr[i + 1])

    arr[j++] = arr[i];

    arr[j++] = arr[n - 1];

    return j;

    }

    var arr = [ 1, 2, 2, 3, 4, 4, 4, 5, 5 ];

    var n = arr.length;

    n = removeDuplicates(arr, n);

    for (i = 0; i < n; i++)

    document.write(arr[i] + " " );

    </script>

    Time Complexity : O(n)
    Auxiliary Space : O(1)

    This article is contributed by Sahil Chhabra. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.


    shawcompall.blogspot.com

    Source: https://www.geeksforgeeks.org/remove-duplicates-sorted-array/

    0 Response to "Remove Duplicates From Sorted Array 334 Easy"

    إرسال تعليق

    Iklan Atas Artikel

    Iklan Tengah Artikel 1

    Iklan Tengah Artikel 2

    Iklan Bawah Artikel