Php Program to 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:
PHP
<?php
$M = 3;
$N = 3;
function rotateMatrix(& $matrix , $k )
{
global $M , $N ;
$temp = array ();
$k = $k % $M ;
for ( $i = 0; $i < $N ; $i ++)
{
for ( $t = 0;
$t < $M - $k ; $t ++)
$temp [ $t ] = $matrix [ $i ][ $t ];
for ( $j = $M - $k ;
$j < $M ; $j ++)
$matrix [ $i ][ $j - $M + $k ] =
$matrix [ $i ][ $j ];
for ( $j = $k ; $j < $M ; $j ++)
$matrix [ $i ][ $j ] = $temp [ $j - $k ];
}
}
function displayMatrix(& $matrix )
{
global $M , $N ;
for ( $i = 0; $i < $N ; $i ++)
{
for ( $j = 0; $j < $M ; $j ++)
echo ( $matrix [ $i ][ $j ]. " " );
echo ("
");
}
}
$matrix = array ( array (12, 23, 34),
array (45, 56, 67),
array (78, 89, 91));
$k = 2;
rotateMatrix( $matrix , $k );
displayMatrix( $matrix );
?>
|
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
Share your thoughts in the comments
Please Login to comment...