10/11/2016

C++ Program To Find Duplicate Element In Array Time Complexity O(n), Space Complexity O(1)
Problem :- Find Duplicates In O(n) Time And O(1) Extra Space.Given An array Of n Elements With Any Of These Numbers Appearing Any Number Of Times. Find These Repeating Numbers In O(n) And Using Only Constant Memory Space.

Example

Let n Be 9 And Array Be {0,2,3,2,3,0,9,9,7}, The OUTPUT Should Be 2, 3 ,9 And 0.


Solution :-

#include<iostream>
#include<stdlib.h>
using namespace std;

void repeated_element(int a[],int size)
 {
    int i,count=0;

    cout<<"Repeating Element Are : ";

    for(i=0;i<size;i++)
    {
    if(a[abs(a[i])]>0)
    a[abs(a[i])]=-a[abs(a[i])];
  else if(a[abs(a[i])]==0)
  count++;
  else
  cout<<" "<<abs(a[i]);  
    }

    if(count>1)
        cout<<" "<<count;

int main()
{
int n,i,a[20];
cout<<"Enter The Size Of Array\n";
cin>>n;
cout<<"Enter The Element Of Array\n";
for(i=0;i<n;i++)
{
cin>>a[i];
}
repeated_element(a,n);
return 0;
}

Output :-

C++ Program To Find Duplicate Element In Array Time Complexity O(n), Space Complexity O(1)