Создайте перестановку длины N, чтобы абсолютная разница между соседними элементами находилась в диапазоне [2, 4]
Опубликовано: 22 Сентября, 2022
Дана натуральное число N , задача состоит в том, чтобы построить перестановку первых N натуральных чисел так что абсолютная разница между соседними элементами равна 2 , 3 или 4 . Если построить такую перестановку невозможно, то выведите «-1» .
Примеры:
Input: N = 4
Output: 3 1 4 2
Explanation:
Consider a permutation {3, 1, 4, 2}. Now, the absolute difference between adjacent elements are {2, 3, 2}.Input: N = 9
Output: 9 7 5 3 1 4 2 6 8
Подход: данная проблема может быть решена путем группировки последовательных четных и нечетных элементов вместе для построения перестановки. Выполните следующие шаги, чтобы решить проблему:
- Если значение N меньше 4 , то выведите -1 , так как невозможно построить перестановку по заданным условиям для N меньше 4 .
- Инициализируйте переменную, скажем i как N , и выполните следующие шаги ниже:
- Если значение iis четное, то уменьшите значение i на 1 .
- Повторяйте до тех пор, пока значение i не станет не менее 1 , напечатайте значение i и уменьшите значение i на 2 .
- Выведите 4 и 2 и обновите значение i до 6 .
- Выполните итерацию в диапазоне [i, N] и напечатайте значение i и увеличьте значение i на 2 .
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(N)
Вспомогательное пространство: O(1)