# Java Program for Rotate the matrix right by K times

Last Updated : 08 Jun, 2022

Given a matrix of size N*M, and a number K. We have to rotate the matrix K times to the right side.
Examples:

Input :  N = 3, M = 3, K = 2
12 23 34
45 56 67
78 89 91

Output : 23 34 12
56 67 45
89 91 78

Input :  N = 2, M = 2, K = 2
1 2
3 4

Output : 1 2
3 4

A simple yet effective approach is to consider each row of the matrix as an array and perform an array rotation. This can be done by copying the elements from K to end of array to starting of array using temporary array. And then the remaining elements from start to K-1 to end of the array.
Lets take an example:

## Java

 // Java program to rotate a matrix // right by k times   class GFG {     // size of matrix     static final int M=3;     static final int N=3;           // function to rotate matrix by k times     static void rotateMatrix(int matrix[][], int k)     {         // temporary array of size M         int temp[]=new int[M];                   // within the size of matrix         k = k % M;                   for (int i = 0; i < N; i++)         {                       // copy first M-k elements             // to temporary array             for (int t = 0; t < M - k; t++)             temp[t] = matrix[i][t];                       // copy the elements from k             // to end to starting             for (int j = M - k; j < M; j++)             matrix[i][j - M + k] = matrix[i][j];                       // copy elements from             // temporary array to end             for (int j = k; j < M; j++)             matrix[i][j] = temp[j - k];         }     }           // function to display the matrix     static void displayMatrix(int matrix[][])     {         for (int i = 0; i < N; i++)         {             for (int j = 0; j < M; j++)             System.out.print(matrix[i][j] + " ");             System.out.println();         }     }           // Driver code     public static void main (String[] args)     {         int matrix[][] = {{12, 23, 34},                         {45, 56, 67},                         {78, 89, 91}};     int k = 2;           // rotate matrix by k     rotateMatrix(matrix, k);           // display rotated matrix     displayMatrix(matrix);     } }   // This code is contributed by Anant Agarwal.

Output:

23 34 12
56 67 45
89 91 78

Time Complexity: O(N*M)
Auxiliary Space: O(M)

Please refer complete article on Rotate the matrix right by K times for more details!

Article Tags :
Practice Tags :