Найти следующее число, имеющее разные цифры от заданного числа N
Учитывая натуральное число N , задача состоит в том, чтобы найти следующее число, имеющее разные цифры от данного числа.
Примеры:
Input: N = 19
Output: 20
Explanation:
Next number to 19 whose digits are different from 19 is 20.
Input: N = 2019
Output: 3333
Explanation:
Next number to 2019 whose digits are different from 2019 is 3333.
Подход: идея состоит в том, чтобы использовать хеширование для вычисления следующего числа с отличной цифрой от данного числа -
- Создайте хеш-массив для хранения цифр, присутствующих в номере, сохраните наиболее значимую цифру, а также сохраните количество цифр, присутствующих в числе, в переменной счетчика
- Найдите следующую цифру для самого старшего разряда, которого нет в числе и который больше текущей самой старшей цифры.
- Если следующая наиболее значимая цифра не найдена, увеличьте количество цифр, увеличивая счетчик, и найдите наиболее значимую цифру от 1 до 9, которой нет в числе.
- Если найдена следующая наиболее значимая цифра, найдите следующую минимальную цифру, которой нет в числе от 0 до 9.
- Перебрать количество цифр от 1 до подсчета
- Умножьте старшую цифру на 10 и добавьте следующую цифру, которой нет в данном числе.
Ниже представлена реализация описанного выше подхода:
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.