Найти точку ближайшего пересечения в плане

Недавно на собеседовании мне задали следующий вопрос:

Предположим, у вас есть следующая сетка в декартовой системе координат (квадрант I).

o - x - x - x - o
|   |   |   |   |
x - x - x - o - x
|   |   |   |   |
x - o - o - x - x

where,  o => person at intersection  and  x => no person at intersection

class Point {
 int x;
 int y;
 boolean hasPerson;
}


Point findNearestPointWhereAllPeopleCanMeet(Point[] people) {

}

Реализуйте процедуру, в которой, учитывая список людей, находящихся в разных местах (точках), найдите такое место (точку), которое является ближайшим ко всем заданным точкам.

Как бы вы решили эту задачу?

1) Подход - k-d дерево, но знаете ли вы другое решение?

7
задан ROMANIA_engineer 24 December 2017 в 14:21
поделиться