Найдите последний элемент массива, повернув и удалив элемент N-K+1
Дан массив 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)