Print all the sub diagonal elements of the given square matrix

27 Apr, 2021
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 4Input: 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++
Java
Python3
C#
Javascript
// 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 matrixvoid printSubDiagonal(int arr[R][C]){    for (int i = 1; i < R; i++) {        cout << arr[i][i - 1] << " ";    }} // Driver codeint 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 implementation of the approachimport java.io.*; class GFG{     static int R = 4;static int C = 4; // Function to print the sub diagonal// elements of the given matrixstatic void printSubDiagonal(int arr[][]){    for (int i = 1; i < R; i++)    {            System.out.print(arr[i][i - 1] + " ");    }} // Driver codepublic 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 implementation of the approachR = 4C = 4 # Function to print the sub diagonal# elements of the given matrixdef printSubDiagonal(arr):     for i in range(1, R):        print(arr[i][i - 1], end = " ") # Driver codearr = [[ 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# implementation of the approachusing 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.
<script> // Javascript implementation of the approachvar R = 4var C = 4 // Function to print the sub diagonal// elements of the given matrixfunction printSubDiagonal(arr){    for (var i = 1; i < R; i++) {        document.write( arr[i][i - 1] + " ");    }} // Driver codevar arr = [ [ 1, 2, 3, 4 ],                  [ 5, 6, 7, 8 ],                  [ 9, 10, 11, 12 ],                  [ 13, 14, 15, 16 ] ];printSubDiagonal(arr);  </script>
5 10 15
 
jit_t
mohit kumar 29
Code_Mech
rrrtnx
Traversal
Matrix
Matrix
Traversal
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.