Given a sorted array arr[] of size N, the task is to print all the unique elements in the array.
An array element is said to be unique if the frequency of that element in the array is 1.
Examples:
Input: arr[ ] = {1, 1, 2, 2, 3, 4, 5, 5}
Output: 3 4
Explanation: Since 1, 2, 5 are occurring more than once in the array, the distinct elements are 3 and 4.Input: arr[ ] = {1, 2, 3, 3, 3, 4, 5, 6}
Output: 1 2 4 5 6
Approach: The simplest approach to solve the problem is to traverse the array arr[] and print only those elements whose frequency is 1. Follow the steps below to solve the problem:
- Iterate over the array arr[] and initialize a variable, say cnt = 0, Â to count the frequency of the current array element.
- Since the array is already sorted, check if the current element is the same as the previous element. If found to be true, then update cnt += 1.
- Otherwise, if cnt = 1, then print the element. Otherwise, continue.
Below is the implementation of the above approach:
C++
// C++ Program for the above approach #include <bits/stdc++.h> using namespace std; Â
// Function to print all unique // elements present in a sorted array void RemoveDuplicates( int arr[], int n) { Â
    int i = 0; Â
    // Traverse the array     while (i < n) { Â
        int cur = arr[i]; Â
        // Stores frequency of         // the current element         int cnt = 0; Â
        // Iterate until end of the         // array is reached or current         // element is not the same as the         // previous element         while (i < n and cur == arr[i]) {             cnt++;             i++;         } Â
        // If current element is unique         if (cnt == 1) { Â
            cout << cur << " " ;         }     } } Â
// Driver Code int main() { Â
    // Given Input     int arr[] = { 1, 3, 3, 5, 5, 6, 10 };     int N = 7; Â
    // Function Call     RemoveDuplicates(arr, N); Â
    return 0; } |
Java
// Java Program for the above approach import java.io.*; Â
class GFG {      // Function to print all unique   // elements present in a sorted array   static void RemoveDuplicates( int arr[], int n)   { Â
    int i = 0 ; Â
    // Traverse the array     while (i < n) { Â
      int cur = arr[i]; Â
      // Stores frequency of       // the current element       int cnt = 0 ; Â
      // Iterate until end of the       // array is reached or current       // element is not the same as the       // previous element       while (i < n && cur == arr[i]) {         cnt++;         i++;       } Â
      // If current element is unique       if (cnt == 1 ) {         System.out.print(cur + " " );       }     }   } Â
  // Driver Code Â
  public static void main (String[] args)   { Â
    // Given Input     int arr[] = { 1 , 3 , 3 , 5 , 5 , 6 , 10 };     int N = 7 ; Â
    // Function Call     RemoveDuplicates(arr, N);   } } Â
// This code is contributed by Potta Lokesh |
Python3
# Function to print all unique # elements present in a sorted array def RemoveDuplicates(arr, n):     i = 0     while i < n:         cur = arr[i]                  # Stores frequency of         # the current element         cnt = 0 Â
        # Iterate until end of the         # array is reached or current         # element is not the same as the         # previous element         while i < n and cur = = arr[i]:             cnt + = 1             i + = 1         if cnt = = 1 :             print (cur, end = " " ) Â
# Driver code if __name__ = = "__main__" :        # Given Input     arr = [ 1 , 3 , 3 , 5 , 5 , 6 , 10 ]     N = 7 Â
    # Function Call     RemoveDuplicates(arr, N)      # This code is contributed by Kushagra Bansal |
C#
// C# Program for the above approach using System; Â
class GFG { Â
    // Function to print all unique     // elements present in a sorted array     static void RemoveDuplicates( int [] arr, int n)     { Â
        int i = 0; Â
        // Traverse the array         while (i < n) { Â
            int cur = arr[i]; Â
            // Stores frequency of             // the current element             int cnt = 0; Â
            // Iterate until end of the             // array is reached or current             // element is not the same as the             // previous element             while (i < n && cur == arr[i]) {                 cnt++;                 i++;             } Â
            // If current element is unique             if (cnt == 1) {                 Console.Write(cur + " " );             }         }     } Â
    // Driver Code Â
    public static void Main()     { Â
        // Given Input         int [] arr = { 1, 3, 3, 5, 5, 6, 10 };         int N = 7; Â
        // Function Call         RemoveDuplicates(arr, N);     } } Â
// This code is contributed by rishavmahato348. |
Javascript
<script> Â Â Â Â Â Â Â // JavaScript Program for the above approach Â
       // Function to print all unique        // elements present in a sorted array        function RemoveDuplicates(arr, n) { Â
           let i = 0; Â
           // Traverse the array            while (i < n) { Â
               let cur = arr[i]; Â
               // Stores frequency of                // the current element                let cnt = 0; Â
               // Iterate until end of the                // array is reached or current                // element is not the same as the                // previous element                while (i < n && cur == arr[i]) {                    cnt++;                    i++;                } Â
               // If current element is unique                if (cnt == 1) { Â
                   document.write(cur + " " );                }            }        } Â
       // Driver Code Â
       // Given Input        let arr = [1, 3, 3, 5, 5, 6, 10];        let N = 7; Â
       // Function Call        RemoveDuplicates(arr, N); Â
   // This code is contributed by Potta Lokesh Â
   </script> |
1 6 10
Time Complexity: O(N)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!