Skip to content

Prepare For Coder Interview – Denny

  • Basic
  • Medium
  • Hard
  • Architect
  • Life

LeetCode: Best Meeting Point

Posted on August 5, 2019July 26, 2020 by braindenny

Best Meeting Point



Similar Problems:

  • CheatSheet: Leetcode For Code Interview
  • CheatSheet: Common Code Problems & Follow-ups
  • Tag: #manhattandis, #meetingpoint

A group of two or more people wants to meet and minimize the total travel distance. You are given a 2D grid of values 0 or 1, where each 1 marks the home of someone in the group. The distance is calculated using Manhattan Distance, where distance(p1, p2) = |p2.x – p1.x| + |p2.y – p1.y|.

Example:

Input: 

1 - 0 - 0 - 0 - 1
|   |   |   |   |
0 - 0 - 0 - 0 - 0
|   |   |   |   |
0 - 0 - 1 - 0 - 0

Output: 6 

Explanation: 
  Given three people living at (0,0), (0,4), and (2,2):
  The point (0,2) is an ideal meeting point, as the total travel distance 
  of 2+2+2=6 is minimal. So return 6.

Github: code.dennyzhang.com

Credits To: leetcode.com

Leave me comments, if you have better ways to solve.


  • Solution:
## https://code.dennyzhang.com/best-meeting-point
## Basic Ideas: getmedian
##
##  Manhattan distance = x distance + y distance
##  Decrease one 2D problem into two 1D problems
##
## Complexity: Time O(n*m*log(n*m)), Space O(n*m)
class Solution:
    def minTotalDistance(self, grid: List[List[int]]) -> int:
        rows, cols = [], []
        n, m = len(grid), len(grid[0])
        points = []
        for i in range(n):
            for j in range(m):
                if grid[i][j] == 1:
                    rows.append(i)
                    cols.append(j)
                    points.append((i, j))
        rowMedian = rows[int(len(rows)/2)]
        cols.sort()
        colMedian = cols[int(len(cols)/2)]

        res = 0
        for (i, j) in points:
            res += abs(rowMedian-i) + abs(colMedian-j)
        return res
linkedin
github
slack

Post Views: 0
Posted in MediumTagged manhattandis, meetingpoint, redo

Post navigation

LeetCode: Maximum Nesting Depth of Two Valid Parentheses Strings
LeetCode: H-Index

Leave a Reply Cancel reply

Your email address will not be published.

Tags

#array #backtracking #bfs #binarytree #bitmanipulation #blog #classic #codetemplate #combination #dfs #dynamicprogramming #game #graph #greedy #heap #inspiring #interval #linkedlist #manydetails #math #palindrome #recursive #slidingwindow #stack #string #subarray #trie #twopointer #twosum binarysearch editdistance hashmap intervaldp knapsack monotone oodesign presum rectangle redo review rotatelist series sql treetraversal unionfind

Recent Posts

  • a
  • a
  • a
  • a
  • a

Recent Comments

    Archives

    Categories

    • Amusing
    • Basic
    • Easy
    • Hard
    • Life
    • Medium
    • Resource
    • Review
    • Series
    • Uncategorized
    Proudly powered by WordPress | Theme: petals by Aurorum.