next greater element

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;
        
    }
};```
Comments (0)