Найдите последний элемент массива, повернув и удалив элемент N-K+1

Опубликовано: 22 Февраля, 2023

Дан массив arr[] из N целых чисел. Задача состоит в том, чтобы найти элемент, который в конце концов останется после выполнения следующей операции N – 1 раз. Для каждой K- й операции:

  • Поверните массив вправо на 1 по часовой стрелке.
  • Удалите (n – K + 1) последний элемент.

Пример:

Input: N = 6, arr[] = {1, 2, 3, 4, 5, 6}
Output: 3
Explanation: Rotate the array clockwise i.e. after rotation the array A = {6, 1, 2, 3, 4, 5} and delete the last element that is {5} that will be A = {6, 1, 2, 3, 4}. 
Again rotate the array for the second time and deletes the second last element that is {2} that will be A = {4, 6, 1, 3}, doing similar operation when we perform 4th operation, 4th last element does not exist. Then we deletes 1st element ie {1} that will be A = {3, 6}. So, continuing this procedure the last element in A is {3}.
So, the output will be 3.

Input: N = 4, arr = {1, 2, 3, 4}
Output: 3

Подход: Чтобы решить проблему, выполните указанные ниже действия.

Do N – 1 operation and for each operation Right rotate the array clockwise by 1 and Delete the (N – K + 1)th last element then finally return the first element which left in the array.

Выполните следующие шаги, чтобы реализовать вышеуказанную идею:

  • Инициализируйте переменную K = 1 для подсчета количества операций, выполненных до сих пор.
  • Делайте, пока K меньше размера массива.
    • Делайте правый поворот
    • Сотрите N – K + 1 элемент
    • Обновить текущий размер массива
    • Увеличьте значение K на 1
  • Возвращает первый левый элемент массива.

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(N 2 )
Вспомогательное пространство: O(1)