➤ 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!!