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