Java Program to Print matrix in snake pattern

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. 

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 */


Output : 

10 20 30 40 45 35 25 15 27 29 37 48 50 39 33 32 

Time complexity: O(n^2) where n is no of elements in rows and columns

Auxiliary Space: O(1) because constant space has been used

Please refer complete article on Print matrix in snake pattern for more details!