Open In App

Javascript Program for Rotate the matrix right by K times

Last Updated : 08 Jun, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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
    var M = 3;
     var N = 3;
 
    // function to rotate matrix by k times
    function rotateMatrix(matrix , k)
    {
        // temporary array of size M
        var temp = 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
    function displayMatrix(matrix) {
        for (i = 0; i < N; i++) {
            for (j = 0; j < M; j++)
                document.write(matrix[i][j] + " ");
            document.write("<br/>");
        }
    }
 
    // Driver code
     
        var matrix = [
        [ 12, 23, 34 ],
        [ 45, 56, 67 ],
        [ 78, 89, 91 ] ];
        var k = 2;
 
        // rotate matrix by k
        rotateMatrix(matrix, k);
 
        // display rotated matrix
        displayMatrix(matrix);
 
// This code contributed by umadevi9616
 
</script>


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!



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads