Given an array, reverse every sub-array formed by consecutive k elements.
Input: arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], k = 3.
Output: [3, 2, 1, 6, 5, 4, 9, 8, 7, 10]
Input: arr = [1, 2, 3, 4, 5, 6, 7], k = 5.
Output: [5, 4, 3, 2, 1, 7, 6]
- We will use two pointers technique to solve this problem.
- First, we will initialize our 1st pointer d with value k-1 (d = k-1) and a variable m with value 2 (m = 2).
Now, we will iterate the array with our 2nd pointer i and check
- If i < d, Swap (arr[i], arr[d]) and decrement d by 1. Otherwise,
- Make d = k * m – 1, i = k * (m – 1) – 1 and m = m + 1.
Below is the implementation of the above approach.
3 2 1 6 5 4 7
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Reverse an array in groups of given size
- Reverse an array in groups of given size | Set 2 (Variations of Set 1 )
- Reverse a Linked List in groups of given size (Iterative Approach)
- Move all zeroes to end of array | Set-2 (Using single traversal)
- Minimum difference between groups of size two
- Count all possible groups of size 2 or 3 that have sum as multiple of 3
- Maximum difference between groups of size two
- Find the size of largest group where groups are according to the xor of digits
- Maximize number of groups formed with size not smaller than its largest element
- Reverse zigzag Traversal of a Binary Tree
- Reverse Level Order traversal in spiral form
- Reverse Clockwise spiral traversal of a binary tree
- Reverse Anti Clockwise Spiral Traversal of a Binary Tree
- Ways to split array into two groups of same XOR value
- Minimum sum obtained from groups of four elements from the given array
- Partition the array into two odd length groups with minimized absolute difference between their median
- Merge an array of size n into another array of size m+n
- Sort an array where a subarray of a sorted array is in reverse order
- Reduce the array to a single integer with the given operation
- Array element moved by k using single moves