# Geeksforgeeks Solution For " Distinct absolute array elements "

GeeksforGeeks Solution For Hard Domain .Below You Can Find The Solution Of  School Basic ,Easy ,Medium . Or Hackerrank Solution You Can Also Direct Submit Your Solution to Geeksforgeeks Same Problem .You Need to login then you can submit you answers

Problem :- Distinct absolute array elements

Solution :-

Method 1 :-

#include <bits/stdc++.h>
using namespace std;
typedef unordered_map<int,int> um;
int main() {
//code
int t,num;
cin>>t;
um temp;
while(t--){
int n;
cin>>n;
while(n--){
cin>>num;
temp[abs(num)]++;
}
cout<<temp.size()<<endl;
temp.clear();
}
return 0;
}

Method 2 :-

#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
int t,c;
cin>>t;
while(t--)
{
int i,n;
c=0;
cin>>n;
vector<int> ar(n);
char s[n];

for(i=0;i<n;i++)
{
cin>>ar[i];
}
for(i=0;i<n;i++)
{
ar[i]=abs(ar[i]);
}
sort(ar.begin(),ar.end());

for(i=0;i<n;i++)
{
if(ar[i]=='\$')
c=1;
if(ar[i]==ar[i+1])
ar[i]='\$';
}
for(i=0;i<n;i++)
{
if(ar[i]=='\$')
continue;
c++;//cout<<ar[i]<<"\n";
}
cout<<c<<"\n";

}

return 0;

}

Output:-