296-Best-Meeting-Point

Sat 17 May 2025

https://leetcode.com/problems/best-meeting-point

import pyutil as pyu
pyu.get_local_pyinfo()
print(pyu.ps2("python-dotenv"))
from typing import List
class Solution:
  def minTotalDistance(self, grid: List[List[int]]) -> int:
    m = len(grid)
    n = len(grid[0])
    # I indices s.t. grid[i][j] == 1
    I = [i for i in range(m) for j in range(n) if grid[i][j]]
    # J indices s.t. grid[i][j] == 1
    J = [j for j in range(n) for i in range(m) if grid[i][j]]

    def minTotalDistance(grid: List[int]) -> int:
      summ = 0
      i = 0
      j = len(grid) - 1

      while i < j:
        summ += grid[j] - grid[i]
        i += 1
        j -= 1

      return summ

    # Sum(i - median(I)) + sum(j - median(J))
    return minTotalDistance(I) + minTotalDistance(J)
new Solution().minTotalDistance()

Score: 5

Category: leetcode