Untitled

 avatar
unknown
c_cpp
2 years ago
766 B
6
Indexable
class Solution {
  public:
    vector<int> shortestPath(vector<vector<int>>& edges, int N,int M, int src){
        vector<int> vis(N,0),dist(N,-1);
        dist[src]=0;
        unordered_map<int,vector<int>> m;
        for(auto v:edges)
        {
            m[v[0]].push_back(v[1]);
        }
        queue<pair<int,int>>q;
        q.push({src,0});
        vis[src]=1;
       
        while(q.size())
        {
            int t=q.front().first;
            int d=q.front().second;
              q.pop();
            for(auto i:m[t])
            {
                if(!vis[i])
                {
                    vis[i]=1;
                    q.push({i,d+1});
                    dist[i]=d+1;
                }
            }
        }
        return dist;
    }
};
Editor is loading...
Leave a Comment