Min Cost to Connect All Points LeetCode solution in C++

1
class Solution {
2
public:
3
int minCostConnectPoints(vector<vector<int>> &points) {
4
ios_base::sync_with_stdio(false);
5
cin.tie(NULL);
6

7
int n = points.size();
8
priority_queue<vector<int>> q;
9
unordered_set<int> vis;
10
int ans = 0;
11
q.push({0, 0, 0});
12
vector<int> cur;
13
while (!q.empty() && vis.size() < n) {
14
cur = q.top();
15
q.pop();
16
if (vis.count(cur[2])) continue;
17
ans += -cur[0];
18
vis.insert(cur[2]);
19
for (int i = 0; i < n; i++) {
20
if (!vis.count(i)) {
21
int d = abs(points[cur[2]][0] - points[i][0]) + abs(points[cur[2]][1] - points[i][1]);
22
q.push({-d, cur[2], i});
23
}
24
}
25
}
26
return ans;
27
}
28
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0