#+ANKI_DECK: study_deck_02 * TODO 1584. Min Cost to Connect All Points :medium: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*1584. Min Cost to Connect All Points][1584. Min Cost to Connect All Points]] :END: You are given an array ~points~ representing integer coordinates of some points on a 2D-plane, where ~points[i] = [x_{i}, y_{i}]~. The cost of connecting two points ~[x_{i}, y_{i}]~ and ~[x_{j}, y_{j}]~ is the *manhattan distance* between them: ~|x_{i} - x_{j}| + |y_{i} - y_{j}|~, 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:* #+begin_src Input: points = [[0,0],[2,2],[3,10],[5,2],[7,0]] Output: 20 Explanation: 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. #+end_src *Example 2:* #+begin_src Input: points = [[3,12],[-2,5],[-4,1]] Output: 18 #+end_src *Constraints:* - ~1 <= points.length <= 1000~ - ~-10^{6} <= x_{i}, y_{i} <= 10^{6}~ - All pairs ~(x_{i}, y_{i})~ are distinct. ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def minCostConnectPoints(self, points: List[List[int]]) -> int: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: int minCostConnectPoints(vector>& points) { } }; #+end_src