Please help me with the error below...

For Input N=2 ans trust array: [[1,2]] i get correct answer.
But for N=3 and trust array: [[1,2],[2,3]] i get Address Sanitizer Error...
I can't figure out what is wrong with this code?

class Solution {
public:
    int findJudge(int N, vector<vector<int>>& trust){
        
        int i, j;
        vector<vector<int>> v(N+1);
        v[0].push_back(-1);
        for(i=0;i<trust.size();i++)
            v[trust[i][1]].push_back(trust[i][0]);
        
        /* for(i=0; i<=N; i++){
            for(j=0; j<v[i].size(); j++)
                cout<<v[i][j]<<" ";
            cout<<endl;
        } */
        int ans = 0;
        for(i=1; i<=v.size(); i++){
            
            if(v[i].size() == N-1)
            {
                ans=i;
                break;
            }
        }
        
        
        bool flag = true;
        if(ans==0){
            //return -1;
            flag=false;
        }
        
        else if(ans>0)
        {
            for(i=0; i<trust.size(); i++)
            {
                if(trust[i][0]==ans)
                {
                    flag=false;
                    break;
                }
            }
           
            
        }
        if(flag == false)
                return -1;
        else return ans;
    }
	```
         
};
Comments (1)