what is the issue with this code?prblm- Next greater element of array-1
public:
int idx(int k,vector<int>& nums2){
int i;
for(i=0;i<nums2.size();i++){
if(nums2[i]==k){
return i;
break;
}
}
return i;
}
vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
vector<int>v;
stack<int>s;
for(int j=nums2.size()-1;j>=0;j--){
if(s.size()==0){
v.push_back(-1);
}else if(s.size()>0 && nums2[j]<s.top()){
v.push_back(s.top());
}else if(s.size()>0 && nums2[j]>=s.top()){
while(s.top()<nums2[j] && s.size()>0){
s.pop();
}
if(s.top()>nums2[j]){
v.push_back(s.top());
}else{
v.push_back(-1);
}
}
s.push(nums2[j]);
}
reverse(v.begin(),v.end());
vector<int>ans;
for(int i=0;i<nums1.size();i++){
int index=idx(nums1[i],nums2);
ans.push_back(v[index]);
}
return ans;
}
};```