Преобразуйте 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:

  1. Decreasing the value of A by 2, modifies the value of A to (4 – 2) = 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)