Reverse at a given distance
In this variation, we will be provided with two integer type variables k and m. Where, k will be the size of the sub-array and m will be the distance between the sub-arrays. Hence, we have to reverse the sub-arrays of size k after a distance of m elements between them.
Example:
Input: arr = [1, 2, 3, 4, 5, 6], k = 2, m = 2
Output: [2, 1, 3, 4, 6, 5]
Input: arr = [1, 2, 3, 4, 5, 6, 7, 8, 9], k = 3, m = 3
Output:
[3, 2, 1, 4, 5, 6, 9, 8, 7]
Example: The below example will explain you the practical implementation in JavaScript.
function groupReverse(arr, n, k, m) {
let i = 0;
while (i < n) {
let leftStart = i;
let leftEnd = Math.min(i + k - 1,
n - 1);
while (leftStart < leftEnd) {
let temp = arr[leftStart];
arr[leftStart] = arr[leftEnd];
arr[leftEnd] = temp;
leftStart++; leftEnd--;
}
i += k + m;
}
console.log(arr);
}
let array = [1, 2, 3, 4, 5, 6];
let array2 = [1, 2, 3, 4, 5,
6, 7, 8];
groupReverse(array, 6, 2, 2);
groupReverse(array2, 8, 2, 4);
Output
[ 2, 1, 3, 4, 6, 5 ] [ 2, 1, 3, 4, 5, 6, 8, 7 ]
Time Complexity: O(n), n is the size of 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