diff --git a/11 April Dijkstra Algorithm b/11 April Dijkstra Algorithm new file mode 100644 index 0000000..c5f484d --- /dev/null +++ b/11 April Dijkstra Algorithm @@ -0,0 +1,28 @@ +class Solution { + public: + vector dijkstra(int V, vector> &edges, int src) { + // Code here + vector>>v(V); + for(auto &x:edges){ + v[x[0]].push_back({x[2],x[1]}); + v[x[1]].push_back({x[2],x[0]}); + } + vectorans(V,INT_MAX); + priority_queue,vector>,greater<>>pq; + pq.push({0,src}); + ans[src]=0; + while(!pq.empty()){ + auto x=pq.top(); + int i=x.second; + int d=x.first; + pq.pop(); + for(auto &y:v[i]){ + if(ans[y.second]>y.first+d){ + ans[y.second]=y.first+d; + pq.push({ans[y.second],y.second}); + } + } + } + return ans; + } +};