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
Submit Your Solution :- Click Here
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:-
0 Comments: