Efficient Approach using JAVA programming language:
The above approaches work well when there is a single rotation required. The approaches also modify the original array. To handle multiple queries of array rotation, we use a temp array of size 2n and quickly handle rotations.
Step 1: Copy the entire array two times in temp[0…2n-1] array.
Step 2: Starting position of array after k rotations in temp[] will be k % n. We do k
Step 3: Print temp[] array from k % n to k % n + n.
- JAVA
// Java implementation of
// left rotation of an
// array K number of times
import
java.io.*;
class
GFG
{
// Function to left rotate
// an array k times
static
void
leftRotate(
int
arr[],
int
n,
int
k)
{
// Print array after
// k rotations
for
(
int
i = k; i < k + n; i++)
System.out.print(arr[i % n] +
" "
);
}
// Driver Code
public
static
void
main (String[] args)
{
int
arr[] = {
1
,
3
,
5
,
7
,
9
};
int
n = arr.length;
int
k =
2
;
leftRotate(arr, n, k);
System.out.println();
k =
3
;
leftRotate(arr, n, k);
System.out.println();
k =
4
;
leftRotate(arr, n, k);
System.out.println();
}
}
Output:
5 7 9 1 3 7 9 1 3 5 9 1 3 5 7