Print a 2D Array or Matrix using single loop

08 Jun, 2021
Given a matrix mat[][] of N * M dimensions, the task is to print the elements of the matrix using a single for loop.
Examples:
Input: mat[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}Output: 1 2 3 4 5 6 7 8 9
Input: mat[][] = {{7, 9}, {10, 34}, {12, 15}}Output: 7 9 10 34 12 15
Approach: To traverse the given matrix using a single loop, observe that there are only N * M elements. Therefore, the idea is to use modulus and division to switch the rows and columns while iterating a single loop over the range [0, N * M]. Follow the steps below to solve the given problem:
Iterate a loop over the range [0, N * M] using the variable i.
At each iteration, find the index of the current row and column as row = i / M and column = i % M respectively.
In the above steps, print the value of mat[row][column] to get the value of the matrix at that index.
Below is the implementation of the above approach:
C++
Java
Python3
C#
Javascript
// C++ program for the above approach#include <iostream>using namespace std; // Function to print the element// of 2D matrix using single loopvoid print2DMatrix(int arr[][3],                   int rows, int columns){         // Iterate over the range    // [0, rows*columns]     for(int i = 0; i < rows * columns; i++)    {                 // Find row and column index        int row = i / columns;        int col = i % columns;         // Print the element at        // current index        cout << arr[row][col] << " ";    }} // Driver Codeint main(){         // Given matrix mat[][]    int mat[][3] = { { 1, 2, 3 },                     { 4, 5, 6 },                     { 7, 8, 9 } };     // Dimensions of the matrix    int N = sizeof(mat) / sizeof(mat[0]);    int M = sizeof(mat[0]) / sizeof(mat[0][0]);     // Function Call    print2DMatrix(mat, N, M);    return 0;} // This code is contributed by akhilsaini
// Java Program for the above approach import java.io.*; class GFG {     // Function to print the element    // of 2D matrix using single loop    public static void print2DMatrix(        int arr[][], int rows, int columns)    {         // Iterate over the range        // [0, rows*columns]        for (int i = 0;             i < rows * columns; i++) {             // Find row and column index            int row = i / columns;            int col = i % columns;             // Print the element at            // current index            System.out.print(                arr[row][col] + " ");        }    }     // Driver Code    public static void main(String[] args)    {        // Given matrix mat[][]        int[][] mat = { { 1, 2, 3 },                        { 4, 5, 6 },                        { 7, 8, 9 } };         // Dimensions of the matrix        int N = mat.length;        int M = mat[0].length;         // Function Call        print2DMatrix(mat, N, M);    }}
# Python3 program for the above approach # Function to print the element# of 2D matrix using single loopdef print2DMatrix(arr, rows, columns):     # Iterate over the range  # [0, rows*columns]  for i in range(0, rows * columns):         # Find row and column index    row = i // columns    col = i % columns     # Print the element at    # current index    print(arr[row][col], end = ' ')     # Driver Codeif __name__ == '__main__':     # Given matrix mat[][]  mat = [ [ 1, 2, 3 ],          [ 4, 5, 6 ],          [ 7, 8, 9 ] ]     # Dimensions of the matrix  N = len(mat)  M = len(mat[0])   # Function Call  print2DMatrix(mat, N, M) # This code is contributed by akhilsaini
// C# program for the above approachusing System; class GFG{ // Function to print the element// of 2D matrix using single looppublic static void print2DMatrix(int[, ] arr, int rows,                                 int columns){         // Iterate over the range    // [0, rows*columns]    for(int i = 0; i < rows * columns; i++)    {                 // Find row and column index        int row = i / columns;        int col = i % columns;         // Print the element at        // current index        Console.Write(arr[row, col] + " ");    }} // Driver Codepublic static void Main(){         // Given matrix mat[][]    int[, ] mat = { { 1, 2, 3 },                    { 4, 5, 6 },                    { 7, 8, 9 } };     // Dimensions of the matrix    int N = mat.GetLength(0);    int M = mat.GetLength(1);     // Function Call    print2DMatrix(mat, N, M);}} // This code is contributed by akhilsaini
<script>     // JavaScript program for the above approach    // Function to print the element    // of 2D matrix using single loop         function print2DMatrix(arr,rows,columns)    {         // Iterate over the range        // [0, rows*columns]         for(let i = 0; i < rows * columns; i++)        {             // Find row and column index            let row = parseInt(i / columns, 10);            let col = i % columns;             // Print the element at            // current index            document.write(arr[row][col] + " ");        }    }      // Given matrix mat[][]    let mat = [ [ 1, 2, 3 ],                 [ 4, 5, 6 ],                 [ 7, 8, 9 ] ];     // Dimensions of the matrix    let N = mat.length;    let M = mat[0].length;     // Function Call    print2DMatrix(mat, N, M); </script>
1 2 3 4 5 6 7 8 9
 
Time Complexity: O(N * M)Auxiliary Space: O(1)
akhilsaini
patrabiswajit133
vaibhavrabadiya117
interview-preparation
Arrays
Matrix
School Programming
Arrays
Matrix
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.