Ctrl K

Пары углов без лишних соседей

Сложная
На поле размечены места для палаток, их координаты даны в массиве spots, где spots[i] = [x, y]. Ось x направлена вправо, ось y — вверх. Все места различны, и в каждом будет стоять ровно одна палатка. Двое друзей хотят выбрать себе места A и B и огородить прямоугольник со сторонами, параллельными осям, где A — левый верхний угол, а B — правый нижний. То есть A.x ≤ B.x и A.y ≥ B.y. Прямоугольник может выродиться в отрезок. Пара подходит, если ни одна другая палатка не стоит внутри прямоугольника или на его границе. Верните количество подходящих упорядоченных пар (A, B).
Пример 1
spots=[[0, 4], [2, 2], [4, 0]] → 2

Подходят пары (0, 4) → (2, 2) и (2, 2) → (4, 0). Пара (0, 4) → (4, 0) не подходит: внутри её прямоугольника стоит (2, 2).

Пример 2
spots=[[1, 1], [1, 3], [3, 3]] → 2

(1, 3) → (1, 1) — вертикальный отрезок, (1, 3) → (3, 3) — горизонтальный, оба пусты. Других пар, где первая точка левее-выше второй, нет.

Пример 3
spots=[[0, 0], [5, 5]] → 0

Точка (0, 0) левее, но ниже (5, 5), поэтому ни в каком порядке она не может быть левым верхним углом.

Ограничения
  • 2 ≤ len(spots) ≤ 1000
  • spots[i].length == 2
  • -10⁹ ≤ x, y ≤ 10⁹
  • Все точки различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПустые прямоугольники между точками СредняяПустой прямоугольник по точкам СредняяПоворотная камера СложнаяВстреча видов мха СложнаяБлижайшая пара датчиков Сложная
загружаем Python…
Вход
spots=[[0, 4], [2, 2], [4, 0]]
Ожидается
2

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 121 тест на сервере, включая скрытые.