Создайте перестановку длины 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)