Untitled
unknown
plain_text
2 years ago
702 B
7
Indexable
class Solution {
public:
int maximumLength(vector<int>& arr) {
long long res=1;
if(arr.size()<3) return 1;
map<int,int>mp;
for(auto i:arr) mp[i]++;
for(auto &i:mp){
long long root= i.first;
long long sum=0;
if(root==1) {sum+=mp[root]; mp[root]=0;}
while(root<INT_MAX && mp[root]>0){ //mp[root]>0 takes care of when root=1;
sum+=2;
if(mp[root]==1) break; //single occurence cnt continue more
mp[root]=0;
root=root*root;
}
if(sum%2==0) sum--;
res=max(res,sum);
}
return res;
}
};Editor is loading...
Leave a Comment