Print all the super diagonal elements of the given square matrix
Last Updated :
13 Sep, 2022
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++
#include <bits/stdc++.h>
using namespace std;
#define R 4
#define C 4
void printSuperDiagonal( int arr[R][C])
{
for ( int i = 1; i < C; i++) {
cout << arr[i - 1][i] << " " ;
}
}
int 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
import java.io.*;
class GFG
{
static int R = 4 ;
static int C = 4 ;
static void printSubDiagonal( int arr[][])
{
for ( int i = 1 ; i < C; i++)
{
System.out.print(arr[i- 1 ][i] + " " );
}
}
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);
}
}
|
Python3
R = 4
C = 4
def printSuperDiagonal(arr) :
for i in range ( 1 , C) :
print (arr[i - 1 ][i],end = " " );
if __name__ = = "__main__" :
arr = [ [ 1 , 2 , 3 , 4 ],
[ 5 , 6 , 7 , 8 ],
[ 9 , 10 , 11 , 12 ],
[ 13 , 14 , 15 , 16 ]]
printSuperDiagonal(arr);
|
C#
using System;
lass GFG
{
static int R = 4;
static int C = 4;
static void printSubDiagonal( int [,]arr)
{
for ( int i = 1; i < C; i++)
{
Console.Write(arr[i-1,i] + " " );
}
}
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);
}
}
|
Javascript
<script>
var R = 4
var C = 4
function printSuperDiagonal( arr)
{
for ( var i = 1; i < C; i++) {
document.write( arr[i - 1][i] + " " );
}
}
var arr = [ [ 1, 2, 3, 4 ],
[ 5, 6, 7, 8 ],
[ 9, 10, 11, 12 ],
[ 13, 14, 15, 16 ] ];
printSuperDiagonal(arr);
</script>
|
Time complexity: O(C) where C is no of columns of given matrix
Auxiliary space: O(1)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...