Вывести все числа из заданного диапазона, состоящие из последовательных цифр
Опубликовано: 22 Сентября, 2022
Учитывая диапазон [L, R] , задача состоит в том, чтобы найти все числа из диапазона [L, R] , чьи цифры идут подряд. Выведите все эти числа в порядке возрастания.
Примеры:
Input: L = 12, R = 34
Output: 12 23 34Input: 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)