Class Solution


  • public class Solution
    extends Object
    1584 - Min Cost to Connect All Points\. Medium 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. **Example 1:** ![](https://assets.leetcode.com/uploads/2020/08/26/d.png) **Input:** points = \[\[0,0],[2,2],[3,10],[5,2],[7,0]] **Output:** 20 **Explanation:** ![](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. **Example 2:** **Input:** points = \[\[3,12],[-2,5],[-4,1]] **Output:** 18 **Constraints:** * `1 <= points.length <= 1000` * -106 <= xi, yi <= 106 * All pairs (xi, yi) are distinct.
    • Constructor Detail

      • Solution

        public Solution()
    • Method Detail

      • minCostConnectPoints

        public int minCostConnectPoints​(int[][] points)
      • constructMST

        public void constructMST​(int[] parent,
                                 int[][] points,
                                 boolean[] mst,
                                 PriorityQueue<g1501_1600.s1584_min_cost_to_connect_all_points.Solution.Pair> pq,
                                 int[] dist)
      • containsFalse

        public boolean containsFalse​(boolean[] mst)
      • getDistance

        public int getDistance​(int[] p1,
                               int[] p2)