给你一个二维网格,每个格子是房子 1 或者空地 0。找到一个空地修建一个办公室,使得这个办公室到所有的房子的距离之和最小。 返回最小的距离和。如果无法修建,那么返回 -1.
样例:
返回6。
1. 因为这个题目要求无解的时候返回 -1 ,那么我们就先想一下无解的情况。
(1)网格不存在,即行数为0或者列数为0;
(2)网格存在,但是没有地方修,也就是没有空地。
之后就要开始要想如何解决这个问题了。
2. 题目是要求所有的房子到某一空地的最小曼哈顿距离和,那我们就有一个朴素的想法,直接枚举所有的空地,求出所有的房子到该空地的曼哈顿距离和,从这些距离和中选取最小的一个即可。
Read full article from Google 面试题 | 建邮局
No comments:
Post a Comment