Минимизируйте ходы, чтобы сделать X и Y равными, используя заданные операции вычитания
Учитывая два положительных целых числа, X и Y , задача состоит в том, чтобы найти минимальное количество операций, чтобы сделать X и y равными, где в одной операции мы можем выбрать любое положительное целое число Z и выполнить следующий процесс.
- Если число Z четное , вычтите Z из X.
- Если число Z нечетное , прибавьте Z к X.
Примеры:
Input: X = 4, Y = 7
Output: 1
Explanation: Select Z = 3, then the new X will be 4 + 3 = 7.
Hence, it requires only one operation.Input: X = 6, Y = 6
Output: 0
Explanation: Both of them are already the same.
Hence, it requires 0 operations.
Подход: Эта проблема может быть решена с помощью Жадный подход основан на следующем наблюдении:
There are only three possible answers:
- First, if X = Y, no operation is required,
- Second, If X > Y and X − Y is even or X < Y and Y − X is odd, then only 1 operation is required.
- Third, if X > Y and X − Y is odd or X < Y and Y − X is even, then there is need for 2 operations. One move extra is required for turning it to the second case
Выполните следующие шаги, чтобы решить эту проблему:
- Найдите отношение между X и Y .
- Теперь на основе отношения найдите, сколько ходов необходимо, основываясь на приведенном выше наблюдении.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(1)
Вспомогательное пространство: O(1)