Minimum Cost to Connect Two Groups of Points LeetCode solution in Python
1class Solution:2def connectTwoGroups(self, cost: List[List[int]]) -> int:3m, n = len(cost), len(cost[0])4mn = [min(x) for x in zip(*cost)] # min cost of connecting points in 2nd group56@lru_cache(None)7def fn(i, mask):8"""Return min cost of connecting group1[i:] and group2 represented as mask."""9if i == m:10return sum(mn[j] for j in range(n) if not (mask & (1 << j)))11return min(cost[i][j] + fn(i + 1, mask | 1 << j) for j in range(n))1213return fn(0, 0)