➤ Problem Link : 1208B. Uniqueness
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
int n;
cin>>n;
vector<ll> v;
ll u;
for(int i=0;i<n;i++)
{
cin>>u;
v.push_back(u);
}
unordered_map<ll,int> um;
int ans=0;
bool flag=0;
for(int i=n-1;i>=0;i--)
{
if(um.find(v[i])==um.end())
{
um[v[i]]=i;
if(!flag)
ans++;
}
else
flag=1;
}
ans=n-ans;
int rt=ans-1;
// cout<<rt<<" "<<ans<<endl;
int iv;
unordered_set<ll> vis;
int mx=-1;
for(int i=0;i<n && vis.find(v[i])==vis.end();i++)
{
vis.insert(v[i]);
iv=um[v[i]];
iv=max(iv,rt);
mx=max(mx,iv);
iv=max(iv,mx);
// cout<<i<<" "<<iv<<" "<<endl;
if(iv>i)
ans=min(ans,iv-i);
}
cout<<ans;
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
