Проверьте, можно ли сделать элементы массива равными, добавив цифру единицы к числу
Учитывая массив arr[] из N целых чисел, задача состоит в том, чтобы проверить, возможно ли сделать все элементы массива идентичными, применяя следующую опцию любое количество раз:
- Выберите любое число и добавьте к нему цифру единицы.
Примеры :
Input: arr[] = {1, 2, 4, 8, 24}
Output: Possible
Explanation:
For 1: 1 -> 2 -> 4 -> 8 -> 16- > 22 -> 24
For 2: 2 -> 4 -> 8 -> 16 -> 22 -> 24
For 4: 4 -> 8 -> 16 -> 22 -> 24
For 8: 16- > 22 -> 24
For 24: 24 (it’s already 24, so, no need to change)Input: arr[] = {5, 10}
Output: Possible
Подход : Задача может быть решена на основе следующего наблюдения.
Any number can be converted to have either 0 or 2 as its unit digit by repetitively adding its unit digit to itself at most 10 times.
The idea is to
- Initially make the unit digit of every number either 2 or 0.
- Then for the numbers that have 0 as their unit digit, all of those numbers must be same(because x+0 = 0), and
- For every number with 2 as the unit digit, the difference between them must be multiple of 20 so that they can be made equal.
Следуйте инструкциям, чтобы решить эту проблему:
- Добавляйте цифру единиц каждого числа к самой себе, пока ее цифра единиц не станет 2 или 0.
- Для каждого числа, которое имеет 0 в качестве единичной цифры, проверьте, все ли числа равны.
- Для чисел с 2 в качестве единицы измерения разница между ними должна быть кратна 20.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность : O(N)
Вспомогательное пространство : O(1)