Thursday, 2 April 2026

SDE dijstra algo(single source shortest path algorithm)

 class Solution {

  public:

    vector<int> dijkstra(int V, vector<vector<int>> &edges, int src) {

        // Code here

        priority_queue<pair<int,int>, vector<pair<int,int>>, greater<pair<int,int>>> pq;

        vector<vector<pair<int,int>>>adj(V);

        for(auto e:edges){

            adj[e[0]].push_back({e[1],e[2]});

            adj[e[1]].push_back({e[0],e[2]});

            

        }

        vector<int>dis(V,100000);

        vector<bool>explored(V,0);

        dis[src]=0;

        pq.push({0,src});

        while(!pq.empty()){

            auto temp=pq.top();

            pq.pop();

            int node=temp.second;

            int distance=temp.first;

            if(explored[node])continue;

            explored[node]=1;

            for(auto e:adj[node]){

                int nei=e.first;

                int w=e.second;

                

                if(explored[nei])continue;

                if(dis[node]+w<dis[nei]){

                    dis[nei]=dis[node]+w;

                    pq.push({dis[nei],nei});

                }

            }

        }

        return dis;

    }

};

No comments:

Post a Comment

SDE floyd-warshall algorithm

 // User function template for C++ class Solution {   public:     void floydWarshall(vector<vector<int>> &dist) {         //...