Min Cost to Connect All Points LeetCode solution in C++
1class Solution {2public:3int minCostConnectPoints(vector<vector<int>> &points) {4ios_base::sync_with_stdio(false);5cin.tie(NULL);67int n = points.size();8priority_queue<vector<int>> q;9unordered_set<int> vis;10int ans = 0;11q.push({0, 0, 0});12vector<int> cur;13while (!q.empty() && vis.size() < n) {14cur = q.top();15q.pop();16if (vis.count(cur[2])) continue;17ans += -cur[0];18vis.insert(cur[2]);19for (int i = 0; i < n; i++) {20if (!vis.count(i)) {21int d = abs(points[cur[2]][0] - points[i][0]) + abs(points[cur[2]][1] - points[i][1]);22q.push({-d, cur[2], i});23}24}25}26return ans;27}28};