Given an n x n matrix in the given matrix, you have to print the elements of the matrix in the snake pattern.
Examples:
Input :mat[][] = { {10, 20, 30, 40}, {15, 25, 35, 45}, {27, 29, 37, 48}, {32, 33, 39, 50}}; Output : 10 20 30 40 45 35 25 15 27 29 37 48 50 39 33 32
Input :mat[][] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; Output : 1 2 3 6 5 4 7 8 9
We traverse all rows. For every row, we check if it is even or odd. If even, we print from left to right else print from right to left.
PHP
<?php // PHP program to print // matrix in snake order $M = 4;
$N =4;
function printLN( $mat )
{ global $M ;
global $N ;
// Traverse through all rows
for ( $i = 0; $i < $M ; $i ++)
{
// If current row is even,
// print from left to right
if ( $i % 2 == 0)
{
for ( $j = 0; $j < $N ; $j ++)
echo $mat [ $i ][ $j ], " " ;
// If current row is odd,
// print from right to left
}
else
{
for ( $j = $N - 1; $j >= 0; $j --)
echo $mat [ $i ][ $j ] , " " ;
}
}
} // Driver code $mat = array ( array (10, 20, 30, 40),
array (15, 25, 35, 45),
array (27, 29, 37, 48),
array (32, 33, 39, 50));
printLN( $mat );
// This code is contributed by ajit ?> |
Output :
10 20 30 40 45 35 25 15 27 29 37 48 50 39 33 32
Time complexity: O(n^2) for given n*n matrix
Auxiliary space: O(1)
Please refer complete article on Print matrix in snake pattern for more details!
Recommended Articles