Вывести все числа из заданного диапазона, состоящие из последовательных цифр

Опубликовано: 22 Сентября, 2022

Учитывая диапазон [L, R] , задача состоит в том, чтобы найти все числа из диапазона [L, R] , чьи цифры идут подряд. Выведите все эти числа в порядке возрастания.

Примеры:

Input: L = 12, R = 34
Output: 12 23 34

Input: L = 12, R = 25
Output: 12 23

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

  • Инициализируйте переменную, скажем, num как «» , которая хранит строковую форму всех возможных чисел, имеющих последовательные цифры и в порядке возрастания.
  • Переберите диапазон [1, 9], используя переменную i , и выполните следующие шаги:
    • Обновите строку num до строковой формы i , и если это значение лежит в диапазоне [L, R] , сохраните его в векторе Ans[] .
    • Перебрать диапазон [1, 9] с помощью переменной j , добавить символьную форму j к строке num , и если целочисленная форма строки num лежит в диапазоне [L, R] , то сохранить это в векторе Ans [] .
  • После выполнения вышеуказанных шагов отсортируйте вектор Ans[], чтобы вывести все сгенерированные числа.

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(1)
Космическая сложность: O(1)