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: 
 
Javascript
| <script>// Javascript program to rotate a matrix // right by k times    // size of matrix    varM = 3;     varN = 3;    // function to rotate matrix by k times    functionrotateMatrix(matrix , k)    {        // temporary array of size M        vartemp = Array(M).fill(0);        // within the size of matrix        k = k % M;        for(i = 0; i < N; i++) {            // copy first M-k elements            // to temporary array            for(t = 0; t < M - k; t++)                temp[t] = matrix[i][t];            // copy the elements from k            // to end to starting            for(j = M - k; j < M; j++)                matrix[i][j - M + k] = matrix[i][j];            // copy elements from            // temporary array to end            for(j = k; j < M; j++)                matrix[i][j] = temp[j - k];        }    }    // function to display the matrix    functiondisplayMatrix(matrix) {        for(i = 0; i < N; i++) {            for(j = 0; j < M; j++)                document.write(matrix[i][j] + " ");            document.write("<br/>");        }    }    // Driver code            varmatrix = [         [ 12, 23, 34 ],         [ 45, 56, 67 ],        [ 78, 89, 91 ] ];        vark = 2;        // rotate matrix by k        rotateMatrix(matrix, k);        // display rotated matrix        displayMatrix(matrix);// This code contributed by umadevi9616 </script> | 
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!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!











