Thursday, October 23, 2025
HomeData Modelling & AIC++ Program To Remove Duplicates From Sorted Array

C++ Program To Remove Duplicates From Sorted Array

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

C++




// Simple C++ program to remove duplicates
#include <iostream>
using namespace std;
  
// Function to remove duplicate 
// elements This function returns 
// new size of modified array.
int removeDuplicates(int arr[], int n)
{
    // Return, if array is empty or 
    // contains a single element
    if (n == 0 || n == 1)
        return n;
  
    int temp[n];
  
    // Start traversing elements
    int j = 0;
  
    // If current element is not equal 
    // to next element then store that 
    // current element
    for (int i = 0; i < n - 1; i++)
        if (arr[i] != arr[i + 1])
            temp[j++] = arr[i];
  
    // Store the last element as whether 
    // it is unique or repeated, it hasn't 
    // stored previously
    temp[j++] = arr[n - 1];
  
    // Modify original array
    for (int i = 0; i < j; i++)
        arr[i] = temp[i];
  
    return j;
}
  
// Driver code
int main()
{
    int arr[] = {1, 2, 2, 3, 4, 
                 4, 4, 5, 5};
    int n = sizeof(arr) / sizeof(arr[0]);
  
    // RemoveDuplicates() returns 
    // new size of array.
    n = removeDuplicates(arr, n);
  
    // Print updated array
    for (int i = 0; i < n; i++)
        cout << arr[i] << " ";
  
    return 0;
}
  
// This code is contributed by Aditya Kumar (adityakumar129)


Output:  

1 2 3 4 5

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.

C++




// C++ program to remove 
// duplicates in-place
#include<iostream>
using namespace std;
  
// Function to remove duplicate 
// elements. This function returns 
// new size of modified array.
int removeDuplicates(int arr[], int n)
{
    if (n==0 || n==1)
        return n;
  
    // To store index of next 
    // unique element
    int j = 0;
  
    // Doing same as done in Method 1
    // Just maintaining another updated 
    // index i.e. j
    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;
}
  
// Driver code
int main()
{
    int arr[] = {1, 2, 2, 3, 4, 
                 4, 4, 5, 5};
    int n = sizeof(arr) / sizeof(arr[0]);
  
    // removeDuplicates() returns new 
    // size of array.
    n = removeDuplicates(arr, n);
  
    // Print updated array
    for (int i=0; i<n; i++)
        cout << arr[i] << " ";
  
    return 0;
}


Output: 

1 2 3 4 5

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

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS