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`

and _{i}, y_{i}]`[x`

is the _{j}, y_{j}]**manhattan distance** between them: `|x`

, where _{i} - x_{j}| + |y_{i} - y_{j}|`|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:**

Input:points = [[0,0],[2,2],[3,10],[5,2],[7,0]]Output:20Explanation: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

**Example 3:**

Input:points = [[0,0],[1,1],[1,0],[-1,1]]Output:4

**Example 4:**

Input:points = [[-1000000,-1000000],[1000000,1000000]]Output:4000000

**Example 5:**

Input:points = [[0,0]]Output:0

**Constraints:**

`1 <= points.length <= 1000`

`-10`

^{6}<= x_{i}, y_{i}<= 10^{6}- All pairs
`(x`

are distinct._{i}, y_{i})

class Solution {
public int minCostConnectPoints(int[][] points) {
}
}