Min Cost to Connect All Points
Problem Description​
You are given an array points representing integer coordinates of some points on a 2D-plane, where points[i] = [xi, yi].
The cost of connecting two points [xi, yi] and [xj, yj] is the manhattan distance between them: |xi - xj| + |yi - yj|
, where |val| denotes the absolute value of val.
Return the minimum cost to make all points connected. All points are connected if there is exactly one simple path between any two points.
Examples​
Example 1:
Input: points = [[0,0],[2,2],[3,10],[5,2],[7,0]]
Output: 20
Explanation:
![image](https://assets.leetcode.com/uploads/2020/08/26/c.png)
We can connect the points as shown above to get the minimum cost of 20.
Notice that there is a unique path between every pair of points.
Constraints​
1 <= points.length <= 1000
-10^6 <= xi, yi <= 10^6
All pairs (xi, yi) are distinct.
Solution for Min Cost to Connect All Points​
Approach​
Prim's algorithm:​
- Prim's algorithm is an algorithm for solving the optimization problem of finding the minimum spanning tree in a weighted connected graph within graph theory. A minimum spanning tree is a subset of the edges of the graph that forms a tree containing all vertices while minimizing the total weight of those edges.
Overview of the Algorithm:​
- Calculate the distances between each pair of points and use Prim's algorithm to form the minimum spanning tree.
- Start from an initial point, mark it as visited, and select the point with the smallest distance among the unvisited points.
- Calculate the distances from the selected point to the unvisited points and store them in a cache.
- Add the minimum cost edge to the priority queue using the distances from the cache.
- Repeat the above steps until all points are visited, and calculate the minimum cost.