Найти следующее число, имеющее разные цифры от заданного числа N

Опубликовано: 11 Января, 2022

Учитывая натуральное число 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. 
 

Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.

Подход: идея состоит в том, чтобы использовать хеширование для вычисления следующего числа с отличной цифрой от данного числа -

  • Создайте хеш-массив для хранения цифр, присутствующих в номере, сохраните наиболее значимую цифру, а также сохраните количество цифр, присутствующих в числе, в переменной счетчика
  • Найдите следующую цифру для самого старшего разряда, которого нет в числе и который больше текущей самой старшей цифры.
  • Если следующая наиболее значимая цифра не найдена, увеличьте количество цифр, увеличивая счетчик, и найдите наиболее значимую цифру от 1 до 9, которой нет в числе.
  • Если найдена следующая наиболее значимая цифра, найдите следующую минимальную цифру, которой нет в числе от 0 до 9.
  • Перебрать количество цифр от 1 до подсчета
    • Умножьте старшую цифру на 10 и добавьте следующую цифру, которой нет в данном числе.

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

Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .

Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.