Tôi đã được hỏi câu hỏi sau đây trong cuộc phỏng vấn gần đây:Tìm điểm giao nhau gần nhất trong kế hoạch
Giả sử bạn có, theo lưới trên hệ tọa độ Descartes (Quadrant 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) {
}
Thực hiện thói quen khi có danh sách vị trí người (điểm), tìm vị trí (điểm) gần điểm nhất định cho tất cả điểm đã cho.
Bạn giải quyết vấn đề này như thế nào?
1) Cách tiếp cận là cây k-d, nhưng bạn có biết bất kỳ giải pháp nào khác không?
Nếu "điểm gần nhất với tất cả các điểm đã cho" có nghĩa là tổng khoảng cách tối thiểu, hãy xem http://en.wikipedia.org/wiki/Geometric_median – MBo