Недавно на собеседовании мне задали следующий вопрос:
Предположим, у вас есть следующая сетка в декартовой системе координат (квадрант 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 дерево, но знаете ли вы другое решение?