Dada una array nxn. En la array dada, debe imprimir los elementos de la array en el patrón de serpiente.
Ejemplos:
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
Recorremos todas las filas. Para cada fila, verificamos si es par o impar. Si es par, imprimimos de izquierda a derecha, de lo contrario imprimimos de derecha a izquierda.
Implementación:
C++
// C++ program to print matrix in snake order #include <iostream> #define M 4 #define N 4 using namespace std; void print(int mat[M][N]) { // Traverse through all rows for (int i = 0; i < M; i++) { // If current row is even, print from // left to right if (i % 2 == 0) { for (int j = 0; j < N; j++) cout << mat[i][j] << " "; // If current row is odd, print from // right to left } else { for (int j = N - 1; j >= 0; j--) cout << mat[i][j] << " "; } } } // Driver code int main() { int mat[M][N] = { { 10, 20, 30, 40 }, { 15, 25, 35, 45 }, { 27, 29, 37, 48 }, { 32, 33, 39, 50 } }; print(mat); return 0; }
Java
// Java program to print matrix in snake order import java.util.*; class GFG { static void print(int [][] mat) { // Traverse through all rows for (int i = 0; i < mat.length; i++) { // If current row is even, print from // left to right if (i % 2 == 0) { for (int j = 0; j < mat[0].length; j++) System.out.print(mat[i][j] +" "); // If current row is odd, print from // right to left } else { for (int j = mat[0].length - 1; j >= 0; j--) System.out.print(mat[i][j] +" "); } } } // Driver code public static void main(String[] args) { int mat[][] = new int[][] { { 10, 20, 30, 40 }, { 15, 25, 35, 45 }, { 27, 29, 37, 48 }, { 32, 33, 39, 50 } }; print(mat); } } /* This code is contributed by Mr. Somesh Awasthi */
Python3
# Python 3 program to print # matrix in snake order M = 4 N = 4 def printf(mat): global M, N # Traverse through all rows for i in range(M): # If current row is # even, print from # left to right if i % 2 == 0: for j in range(N): print(str(mat[i][j]), end = " ") # If current row is # odd, print from # right to left else: for j in range(N - 1, -1, -1): print(str(mat[i][j]), end = " ") # Driver code mat = [[ 10, 20, 30, 40 ], [ 15, 25, 35, 45 ], [ 27, 29, 37, 48 ], [ 32, 33, 39, 50 ]] printf(mat) # This code is contributed # by ChitraNayal
C#
// C# program to print // matrix in snake order using System; class GFG { static void print(int [,]mat) { // Traverse through all rows for (int i = 0; i < mat.GetLength(0); i++) { // If current row is // even, print from // left to right if (i % 2 == 0) { for (int j = 0; j < mat.GetLength(1); j++) Console.Write(mat[i, j] + " "); // If current row is // odd, print from // right to left } else { for (int j = mat.GetLength(1) - 1; j >= 0; j--) Console.Write(mat[i, j] + " "); } } } // Driver code public static void Main() { int [,]mat = {{ 10, 20, 30, 40 }, { 15, 25, 35, 45 }, { 27, 29, 37, 48 }, { 32, 33, 39, 50 }}; print(mat); } } // This code is contributed // by ChitraNayal
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 ?>
Javascript
<script> // Javascript program to print // matrix in snake order let M = 4; let N = 4; function print(mat) { // Traverse through all rows for(let i = 0; i < M; i++) { // If current row is even, print from // left to right if (i % 2 == 0) { for(let j = 0; j < N; j++) document.write(mat[i][j] + " "); // If current row is odd, print from // right to left } else { for(let j = N - 1; j >= 0; j--) document.write(mat[i][j] + " "); } } } // Driver code let mat = [ [ 10, 20, 30, 40 ], [ 15, 25, 35, 45 ], [ 27, 29, 37, 48 ], [ 32, 33, 39, 50 ] ]; print(mat); // This code is contributed by rameshtravel07 </script>
10 20 30 40 45 35 25 15 27 29 37 48 50 39 33 32
Complejidad de Tiempo: O(nxm)
Espacio Auxiliar: O(1)
Este artículo es una contribución de Rakesh Kumar . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA