Print all the super 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 super-diagonal of the given matrix.
Examples:
Input: mat[][] = {
{1, 2, 3},
{3, 3, 4, },
{2, 4, 6}}
Output: 2 4
Input: mat[][] = {
{1, 2, 3, 4},
{3, 3, 4, 4},
{2, 4, 6, 3},
{1, 1, 1, 3}}
Output: 2 4 3
Approach: The super-diagonal of a square matrix is the set of elements that lies directly above the elements comprising the main diagonal. As for main diagonal elements, their indexes are like (i = j), for super-diagonal elements their indexes are as j = i + 1 (i denotes row and j denotes column).
Hence elements arr[0][1], arr[1][2], arr[2][3], arr[3][4], …. are the elements of super-diagonal.
Either traverse all elements of matrix and print only those where j = i + 1 which requires O(n2) time complexity or traverse only column from 1 to columnCount – 1 and print elements as arr[column – 1][column].
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 super diagonal// elements of the given matrixvoid printSuperDiagonal(int arr[R][C]){ for (int i = 1; i < C; i++) { cout << arr[i - 1][i] << " "; }}// Driver codeint main(){ int arr[R][C] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 15, 16 } }; printSuperDiagonal(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 < C; i++) { System.out.print(arr[i-1][i] + " "); } } // 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 mohit kumar 29 |
Python3
# Python3 implementation of the approach R = 4C = 4# Function to print the super diagonal # elements of the given matrix def printSuperDiagonal(arr) : for i in range(1, C) : print(arr[i - 1][i],end= " "); # Driver code if __name__ == "__main__" : arr = [ [ 1, 2, 3, 4 ], [5, 6, 7, 8 ], [ 9, 10, 11, 12 ], [ 13, 14, 15, 16 ]] printSuperDiagonal(arr); # This code is contributed by AnkitRai01 |
C#
// C# implementation of the approach using System; lass 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 < C; i++) { Console.Write(arr[i-1,i] + " "); } } // 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 PrinciRaj1992 */ |
Javascript
<script>// Javascript implementation of the approachvar R = 4var C = 4// Function to print the super diagonal// elements of the given matrixfunction printSuperDiagonal( arr){ for (var i = 1; i < C; i++) { document.write( arr[i - 1][i] + " "); }}// Driver codevar arr = [ [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ], [ 9, 10, 11, 12 ], [ 13, 14, 15, 16 ] ];printSuperDiagonal(arr);</script> |
2 7 12
Time complexity: O(C) where C is no of columns of given matrix
Auxiliary space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



