Дано число num, содержащее n цифр. Проблема состоит в том, чтобы найти следующее большее число, используя тот же набор цифр в num на основе заданного приоритета цифр. Например, приоритет цифр задается как 1, 6, 4, 5, 2, 9, 8, 0, 7, 3, что просто означает 1 <6 <4 <5 <2 <9 <8 <0 <7 <3 , Если следующий больший номер не может быть сформирован, напечатайте оригинальный номер.
Примеры:
Input : num = "231447" pre[] = {1, 6, 7, 5, 2, 9, 8, 0, 4, 3} Output : 237144 According to the precedence of digits 1 is being considered as the smallest digit and 3 is being considered as the largest digit. Input : num = "471" pre[] = {1, 6, 7, 5, 2, 9, 8, 0, 4, 3} Output : 471
Подход: следующие шаги:
- Создайте массив с приоритетом [] размером '10'. С помощью массива приоритетов pre [] назначьте номер приоритета каждой цифре в приоритете [], где «1» рассматривается как наименьший приоритет, а «10» — как наивысший приоритет.
- Используя STL C ++ next_permutation с определенной вручную функцией сравнения, найдите следующую большую перестановку.
,
|
Выход:
Next Greater: 237144
Сложность времени: O (n).
Вспомогательное пространство: O (1).
Рекомендуемые посты:
- Найти следующее большее число с таким же набором цифр
- Наибольшее число не больше N, все цифры которого нечетные
- Ближайшее большее число, меняя цифры
- Количество целых чисел в диапазоне, которые имеют четное количество нечетных цифр и нечетное количество четных цифр
- Проверьте, делится ли произведение цифр в четных местах на сумму цифр в нечетном месте числа
- Найти наименьшее число с заданным количеством цифр и суммой цифр
- Найти наибольшее число с заданным количеством цифр и суммой цифр
- Минимальное количество удаляемых цифр, чтобы не было двух последовательных цифр
- Проверьте, делится ли сумма цифр числа на все его цифры
- Наименьшее число с заданной суммой цифр и суммой квадрата цифр
- Сумма цифр квадрата данного числа, у которого только цифры 1
- Количество цифр в n-ом числе, составленном из данных четырех цифр
- Найти число натуральных чисел, меньших или равных N, которые имеют нечетное число цифр
- Наименее большое число с такой же суммой цифр
- Построить наименьшее число, удалив n цифр из данного числа
0.00 (0%) 0 votes