Given a matrix of size n*n, print the matrix in the following pattern.
Output: 1 2 5 3 6 9 4 7 10 13 8 11 14 12 15 16
Examples:
Input :matrix[2][2]= { {1, 2}, {3, 4} } Output : 1 2 3 4 Input :matrix[3][3]= { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} } Output : 1 2 4 3 5 7 6 8 9
Implementation: Following is the C++ implementation for the above pattern.
C++
// CPP program to print matrix downward #include <bits/stdc++.h> using namespace std; void printMatrixDiagonallyDown(vector<vector< int > > matrix, int n) { // printing elements above and on // second diagonal for ( int k = 0; k < n; k++) { // traversing downwards starting // from first row int row = 0, col = k; while (col >= 0) { cout << matrix[row][col] << " " ; row++, col--; } } // printing elements below second // diagonal for ( int j = 1; j < n; j++) { // traversing downwards starting // from last column int col = n - 1, row = j; while (row < n) { cout << matrix[row][col] << " " ; row++, col--; } } } int main() { vector<vector< int > > matrix{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; int n = 3; printMatrixDiagonallyDown(matrix, n); return 0; } |
Java
// JAVA program to print // matrix downward class GFG{ static void printMatrixDiagonallyDown( int [][] matrix, int n) { // printing elements above and on // second diagonal for ( int k = 0 ; k < n; k++) { // traversing downwards // starting from first row int row = 0 , col = k; while (col >= 0 ) { System.out.print(matrix[row][col] + " " ); row++; col--; } } // printing elements below // second diagonal for ( int j = 1 ; j < n; j++) { // traversing downwards starting // from last column int col = n - 1 , row = j; while (row < n) { System.out.print(matrix[row][col] + " " ); row++; col--; } } } // Driver code public static void main(String[] args) { int [][] matrix = {{ 1 , 2 , 3 }, { 4 , 5 , 6 }, { 7 , 8 , 9 }}; int n = 3 ; printMatrixDiagonallyDown(matrix, n); } } // This code is contributed by Rajput-Ji |
Python 3
# Python 3 program to print matrix downward def printMatrixDiagonallyDown(matrix,n): # printing elements above and on # second diagonal for k in range (n): # traversing downwards starting # from first row row = 0 col = k while (col > = 0 ): print (matrix[row][col],end = " " ) row + = 1 col - = 1 # printing elements below second # diagonal for j in range ( 1 ,n): # traversing downwards starting # from last column col = n - 1 row = j while (row < n): print (matrix[row][col],end = " " ) row + = 1 col - = 1 if __name__ = = '__main__' : matrix = [[ 1 , 2 , 3 ],[ 4 , 5 , 6 ],[ 7 , 8 , 9 ]] n = 3 printMatrixDiagonallyDown(matrix, n) # This code is contributed by Surendra_Gangwar |
C#
// C# program to print // matrix downward using System; class GFG{ static void printMatrixDiagonallyDown( int [,] matrix, int n) { // printing elements above and on // second diagonal for ( int k = 0; k < n; k++) { // traversing downwards // starting from first row int row = 0, col = k; while (col >= 0) { Console.Write(matrix[row,col] + " " ); row++; col--; } } // printing elements below // second diagonal for ( int j = 1; j < n; j++) { // traversing downwards starting // from last column int col = n - 1, row = j; while (row < n) { Console.Write(matrix[row,col] + " " ); row++; col--; } } } // Driver code public static void Main(String[] args) { int [,] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int n = 3; printMatrixDiagonallyDown(matrix, n); } } // This code is contributed by Amit Katiyar |
Javascript
<script> // JavaScript program to print // matrix downward function printMatrixDiagonallyDown(matrix,n) { // printing elements above and on // second diagonal for (let k = 0; k < n; k++) { // traversing downwards // starting from first row let row = 0, col = k; while (col >= 0) { document.write(matrix[row][col] + " " ); row++; col--; } } // printing elements below // second diagonal for (let j = 1; j < n; j++) { // traversing downwards starting // from last column let col = n - 1, row = j; while (row < n) { document.write(matrix[row][col] + " " ); row++; col--; } } } // Driver code let matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; let n = 3; printMatrixDiagonallyDown(matrix, n); // This code is contributed by sravan kumar </script> |
1 2 4 3 5 7 6 8 9
Complexity Analysis:
- Time Complexity: O(n2)
- Auxiliary Space: 1
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!