Преобразуйте A в B, увеличив или уменьшив 1, 2 или 5 любое количество раз
Опубликовано: 22 Сентября, 2022
Даны два целых числа A и B , задача состоит в том, чтобы найти минимальное количество ходов, необходимое для того, чтобы сделать A равным B , увеличивая или уменьшая A на 1 , 2 или 5 любое количество раз.
Примеры:
Input: A = 4, B = 0
Output: 2
Explanation:
Perform the operation as follows:
- Decreasing the value of A by 2, modifies the value of A to (4 – 2) = 2.
- Decreasing the value of A by 2 modifies the value of A to (2 – 2) = 0. Which is equal to B.
Therefore, the number of moves required is 2.
Input: A = 3, B = 9
Output: 2
Подход: Данная проблема может быть решена с использованием жадного подхода. Идея состоит в том, чтобы сначала найти приращение или уменьшение 5 , затем 2 , а затем 1 необходимо для преобразования A в B . Выполните следующие шаги, чтобы решить проблему:
- Обновите значение A как абсолютную разницу между A и B .
- Теперь выведите значение (A/5) + (A%5)/2 + (A%5)%2 как минимальное количество приращений или убавлений 1 , 2 или 5 для преобразования A в B .
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(1)
Вспомогательное пространство: O(1)