главная новое лучшее написать

backtracking


3

Продолжаем череду задач на перебор - 1079. Letter Tile Possibilities.

📜 Описание задачи

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

💡 Идея решения

🧑‍💻 Подробности подхода

  1. Сортировка плиток:
    • Плитки сортируются для того, чтобы одинаковые плитки оказались рядом. Это позволяет нам эффективно группировать их в сегменты.
  2. Группировка плиток:
    • Создаем массив сегментов, где каждый элемент представляет собой количество одинаковых плиток.
    • Например, для строки "AAB" сегменты будут равны [2, 1] (2 плитки "A" и 1 плитка "B").
  3. Бэктрекинг — для каждого сегмента мы:
    • пытаемся использовать плитку (уменьшаем количество плиток в этом сегменте);

Читать дальше →

ответить
3

Ссылка на задачу – 1718. Construct the Lexicographically Largest Valid Sequence.

📌 Условие задачи

Дано число n. Необходимо построить последовательность, удовлетворяющую следующим условиям:

💡 Идея

Бэктрекинг — хороший способ решения данной задачи.
Чтобы получить лексикографически наибольшую последовательность, мы должны размещать сначала наибольшие числа.

🔄 Подробности метода

  1. Рекурсивно заполняем последовательность, начиная с первого свободного индекса.
  2. Используем массив used, который отслеживает, какие числа уже размещены.
  3. Пропускаем занятые позиции.
  4. Проверяем возможность размещения числа заранее, прежде чем выполнять рекурсию.

Читать дальше →

ответить