Print all the sub diagonal elements of the given square matrix
Given a square matrix mat[][] of size n * n. The task is to print all the elements which lie on the sub-diagonal of the given matrix.
Examples:
Input: mat[][] = {
{1, 2, 3},
{3, 3, 4, },
{2, 4, 6}}
Output: 3 4
Input: mat[][] = {
{1, 2, 3, 4},
{3, 3, 4, 4},
{2, 4, 6, 3},
{1, 1, 1, 3}}
Output: 3 4 1
Approach: The sub-diagonal of a square matrix is the set of elements that lie directly below the elements comprising the main diagonal. As for main diagonal elements, their indexes are like (i = j), for sub-diagonal elements their indexes are as i = j + 1 (i denotes row and j denotes column).
Hence elements arr[1][0], arr[2][1], arr[3][2], arr[4][3], …. are the elements of sub-diagonal.
Either traverse all elements of matrix and print only those where i = j + 1 which requires O(n2) time complexity or print traverse only row from 1 to rowCount – 1 and print elements as arr[row][row – 1].
Below is the implementation of the above approach:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; #define R 4 #define C 4 // Function to print the sub diagonal // elements of the given matrix void printSubDiagonal( int arr[R][C]) { for ( int i = 1; i < R; i++) { cout << arr[i][i - 1] << " " ; } } // Driver code int main() { int arr[R][C] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 15, 16 } }; printSubDiagonal(arr); return 0; } |
Java
// Java implementation of the approach import java.io.*; class GFG { static int R = 4 ; static int C = 4 ; // Function to print the sub diagonal // elements of the given matrix static void printSubDiagonal( int arr[][]) { for ( int i = 1 ; i < R; i++) { System.out.print(arr[i][i - 1 ] + " " ); } } // Driver code public static void main (String[] args) { int arr[][] = { { 1 , 2 , 3 , 4 }, { 5 , 6 , 7 , 8 }, { 9 , 10 , 11 , 12 }, { 13 , 14 , 15 , 16 } }; printSubDiagonal(arr); } } // This code is contributed by ajit. |
Python3
# Python3 implementation of the approach R = 4 C = 4 # Function to print the sub diagonal # elements of the given matrix def printSubDiagonal(arr): for i in range ( 1 , R): print (arr[i][i - 1 ], end = " " ) # Driver code arr = [[ 1 , 2 , 3 , 4 ], [ 5 , 6 , 7 , 8 ], [ 9 , 10 , 11 , 12 ], [ 13 , 14 , 15 , 16 ]] printSubDiagonal(arr); # This code is contributed # by Mohit Kumar |
C#
// C# implementation of the approach using System; class GFG { static int R = 4; static int C = 4; // Function to print the sub diagonal // elements of the given matrix static void printSubDiagonal( int [,] arr) { for ( int i = 1; i < R; i++) { Console.Write(arr[i, i - 1] + " " ); } } // Driver code public static void Main () { int [,]arr = {{ 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 15, 16 }}; printSubDiagonal(arr); } } // This code is contributed by CodeMech. |
Javascript
<script> // Javascript implementation of the approach var R = 4 var C = 4 // Function to print the sub diagonal // elements of the given matrix function printSubDiagonal(arr) { for ( var i = 1; i < R; i++) { document.write( arr[i][i - 1] + " " ); } } // Driver code var arr = [ [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ], [ 9, 10, 11, 12 ], [ 13, 14, 15, 16 ] ]; printSubDiagonal(arr); </script> |
5 10 15