Вычислите площадь, покрытую картами, случайно разложенными на столе

Это вопрос интервью, интервью было сделано.

Имея колоду прямоугольных карт, положите их случайным образом на прямоугольный стол, размер которого намного больше, чем общая сумма размеров карт. Некоторые карты могут случайным образом накладываться друг на друга. Разработайте алгоритм, который может вычислять площадь стола, покрытую всеми картами, а также анализировать временную сложность алгоритма. Все координаты каждой вершины всех карт известны. Карты могут перекрываться любым образом.

Моя идея:

Отсортировать карты по вертикальной координате в порядке убывания.

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

Но как вычислить площадь, расположенную между двумя линиями, является проблемой, если площадь нерегулярна.

Любая помощь приветствуется. Благодарность !

15
задан andand 28 March 2012 в 15:33
поделиться