Reverse the alternate groups
In this variation of reversing the array, we will reverse the alternate sub-array of the given number of elements. It means the sub-arrays of the given size will be reversed from start and end, while the middle elements will remain at the same positions.
Example:
Input: arr = [1, 2, 3, 4, 5, 6], k=3
Output: [3, 2, 1, 6, 5, 4]
Input: arr = [1, 2, 3, 4, 5], k=2
Output: [2, 1, 3, 5, 4]
Example: The below example will explain the practical implementation of this variation in JavaScript:
function groupReverse(arr, n, k) {
let leftStart = 0, leftEnd = k - 1;
let rightStart = n - k, rightEnd = n - 1;
while (leftStart < leftEnd) {
let temp = arr[leftStart];
arr[leftStart] = arr[leftEnd];
arr[leftEnd] = temp;
leftStart++; leftEnd--;
}
while (rightStart < rightEnd) {
let temp = arr[rightStart];
arr[rightStart] = arr[rightEnd];
arr[rightEnd] = temp;
rightStart++; rightEnd--;
}
console.log(arr);
}
let array = [1, 2, 3, 4, 5];
let array2 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
groupReverse(array, 5, 3);
groupReverse(array2, 9, 3);
Output
[ 3, 2, 5, 4, 1 ] [ 3, 2, 1, 4, 5, 6, 9, 8, 7 ]
Time Complexity: O(k), k is the size of the sub-array
Space Complexity: O(1)
Reverse an Array in Groups of Given Size in JavaScript
In this article, we are going to reverse a sub-array of a given size. We will be provided with an array and a random size for the sub-array to be reversed. There exist different variations of this problem.
These are the following variations of reversing the array in groups of a given size:
Table of Content
- Reverse the alternate groups
- Reverse at a given distance
- Reverse by doubling the group size
- Method 4: Reverse Using Iterative Approach with Array Splicing
- Reverse Sub-arrays Using a Deque