# Traverse matrix in L shape

Given a matrix of size N x M. Where N is number of rows and m indicates columns. Our goal is to print all L shape in given matrix starting from top left corner. For example.

``````Example 1
matrix1[5][4] =
{
{4, 6, -2 , 2 },
{3, -1, 5 , 3 },
{1, 4,  4,  6 },
{9, 4,  6,  2 },
{1, 2,  8,  9 }
}
Here M = 5, N = 4

Output L Shapes
------------------------
4  3  1  9  1  2  8  9
6  -1  4  4  6  2
-2  5  4  6
2  3
------------------------

Example 2
----------
matrix2[5][5] =
{
{1, 9, 8 , 3  , 7},
{3, -1, 5 , 3 , 8},
{1, 3,  4,  6 , 11},
{0, 8,  8,  6 , 2},
{1, 3,  4,  5 , 10}
}
Here M = 5, N = 5

Output L Shapes
----------------------------
1  3  1  0  1  3  4  5  10
9  -1  3  8  8  6  2
8  5  4  6  11
3  3  8
7
----------------------------
``````

Note that L shape are start with first row and first column, and each L shape are reduce 1 column and 1 rows.

``````// C Program
// Traverse matrix in L shape

#include <stdio.h>
#define M 4 // col
#define N 5 // row

// Print the L shape in given matrix
void print_l_shape(int matrix[N][M])
{
printf("  L Shapes \n");
// Loop controlling variables
int c = 0;
int r = 0;
int k  =0;

for(c = 0;c < M; c++)
{

for(r = 0; r < (N-1)-c; r++)
{
printf("  %d",matrix[r][c]);
}
for(k = c;k < M;k++)
{
printf("  %d",matrix[r][k]);
}
printf("\n");
}
printf("\n");
}

int main()
{

// Define matrix of integer elements
int matrix[N][M] =
{
{4, 6, -2 , 2 },
{3, -1, 5 , 3 },
{1, 4,  4,  6 },
{9, 4,  6,  2 },
{1, 2,  8,  9 }
};

print_l_shape(matrix);

return 0;
}``````

#### Output

``````  L Shapes
4  3  1  9  1  2  8  9
6  -1  4  4  6  2
-2  5  4  6
2  3
``````
``````/*
Java Program
Traverse matrix in L shape
*/
class MyMatrix
{
// Print the L shape in given matrix
public void print_l_shape(int[][] matrix)
{
// Get the size
int row = matrix.length;
int col = matrix[0].length;
System.out.print(" L Shapes \n");
// Loop controlling variables
int c = 0;
int r = 0;
int k = 0;
for (c = 0; c < col; c++)
{
for (r = 0; r < (row - 1) - c; r++)
{
System.out.print("  " + matrix[r][c]);
}
for (k = c; k < col; k++)
{
System.out.print("  " + matrix[r][k]);
}
System.out.print("\n");
}
System.out.print("\n");
}
public static void main(String[] args)
{
MyMatrix obj = new MyMatrix();
// Case 1
// Define matrix of integer elements
int[][] matrix1 =
{
{4, 6, -2 , 2 },
{3, -1, 5 , 3 },
{1, 4,  4,  6 },
{9, 4,  6,  2 },
{1, 2,  8,  9 }
};
obj.print_l_shape(matrix1);
// Case 2
// Define matrix of integer elements
int[][] matrix2 =
{
{1, 9, 8 , 3  , 7},
{3, -1, 5 , 3 , 8},
{1, 3,  4,  6 , 11},
{0, 8,  8,  6 , 2},
{1, 3,  4,  5 , 10}
};
obj.print_l_shape(matrix2);
}
}``````

#### Output

`````` L Shapes
4  3  1  9  1  2  8  9
6  -1  4  4  6  2
-2  5  4  6
2  3

L Shapes
1  3  1  0  1  3  4  5  10
9  -1  3  8  8  6  2
8  5  4  6  11
3  3  8
7
``````
``````// Include header file
#include <iostream>
#define M 4 // col
#define N 5 // row
using namespace std;

/*
C++ Program
Traverse matrix in L shape
*/
class MyMatrix
{
public:
//  Print the L shape in given matrix
void print_l_shape(int matrix[N][M])
{

cout << " L Shapes \n";
//  Loop controlling variables
int c = 0;
int r = 0;
int k = 0;
for (c = 0; c < M; c++)
{
for (r = 0; r < (N - 1) - c; r++)
{
cout << "  " << matrix[r][c];
}
for (k = c; k < M; k++)
{
cout << "  " << matrix[r][k];
}
cout << "\n";
}
cout << "\n";
}
};
int main()
{
MyMatrix obj = MyMatrix();
// Define matrix of integer elements
int matrix[N][M] =
{
{4, 6, -2 , 2 },
{3, -1, 5 , 3 },
{1, 4,  4,  6 },
{9, 4,  6,  2 },
{1, 2,  8,  9 }
};
obj.print_l_shape(matrix);
return 0;
}``````

#### Output

`````` L Shapes
4  3  1  9  1  2  8  9
6  -1  4  4  6  2
-2  5  4  6
2  3
``````
``````// Include namespace system
using System;
/*
C# Program
Traverse matrix in L shape
*/
public class MyMatrix
{
//  Print the L shape in given matrix
public void print_l_shape(int[,] matrix)
{
//  Get the size
int row = matrix.GetLength(0);
int col = matrix.GetLength(1);
Console.Write(" L Shapes \n");
//  Loop controlling variables
int c = 0;
int r = 0;
int k = 0;
for (c = 0; c < col; c++)
{
for (r = 0; r < (row - 1) - c; r++)
{
Console.Write("  " + matrix[r,c]);
}
for (k = c; k < col; k++)
{
Console.Write("  " + matrix[r,k]);
}
Console.Write("\n");
}
Console.Write("\n");
}
public static void Main(String[] args)
{
MyMatrix obj = new MyMatrix();
//  Case 1
//  Define matrix of integer elements
int[,] matrix1 =
{
{4, 6, -2 , 2 },
{3, -1, 5 , 3 },
{1, 4,  4,  6 },
{9, 4,  6,  2 },
{1, 2,  8,  9 }
};
obj.print_l_shape(matrix1);
//  Case 2
//  Define matrix of integer elements
int[,] matrix2 =
{
{1, 9, 8 , 3  , 7},
{3, -1, 5 , 3 , 8},
{1, 3,  4,  6 , 11},
{0, 8,  8,  6 , 2},
{1, 3,  4,  5 , 10}
};
obj.print_l_shape(matrix2);
}
}``````

#### Output

`````` L Shapes
4  3  1  9  1  2  8  9
6  -1  4  4  6  2
-2  5  4  6
2  3

L Shapes
1  3  1  0  1  3  4  5  10
9  -1  3  8  8  6  2
8  5  4  6  11
3  3  8
7
``````
``````<?php
/*
Php Program
Traverse matrix in L shape
*/
class MyMatrix
{
//  Print the L shape in given matrix
public  function print_l_shape(\$matrix)
{
//  Get the size
\$row = count(\$matrix);
\$col = count(\$matrix[0]);
echo " L Shapes \n";
//  Loop controlling variables
\$c = 0;
\$r = 0;
\$k = 0;
for (\$c = 0; \$c < \$col; \$c++)
{
for (\$r = 0; \$r < (\$row - 1) - \$c; \$r++)
{
echo "  ". \$matrix[\$r][\$c];
}
for (\$k = \$c; \$k < \$col; \$k++)
{
echo "  ". \$matrix[\$r][\$k];
}
echo "\n";
}
echo "\n";
}
}

function main()
{
\$obj = new MyMatrix();
//  Case 1
//  Define matrix of integer elements
\$matrix1 = array(
array(4, 6, -2, 2),
array(3, -1, 5, 3),
array(1, 4, 4, 6),
array(9, 4, 6, 2),
array(1, 2, 8, 9)
);
\$obj->print_l_shape(\$matrix1);
//  Case 2
//  Define matrix of integer elements
\$matrix2 = array(
array(1, 9, 8, 3, 7),
array(3, -1, 5, 3, 8),
array(1, 3, 4, 6, 11),
array(0, 8, 8, 6, 2),
array(1, 3, 4, 5, 10)
);
\$obj->print_l_shape(\$matrix2);
}
main();``````

#### Output

`````` L Shapes
4  3  1  9  1  2  8  9
6  -1  4  4  6  2
-2  5  4  6
2  3

L Shapes
1  3  1  0  1  3  4  5  10
9  -1  3  8  8  6  2
8  5  4  6  11
3  3  8
7
``````
``````/*
Node Js Program
Traverse matrix in L shape
*/
class MyMatrix
{
//  Print the L shape in given matrix
print_l_shape(matrix)
{
//  Get the size
var row = matrix.length;
var col = matrix[0].length;
process.stdout.write(" L Shapes \n");
//  Loop controlling variables
var c = 0;
var r = 0;
var k = 0;
for (c = 0; c < col; c++)
{
for (r = 0; r < (row - 1) - c; r++)
{
process.stdout.write("  " + matrix[r][c]);
}
for (k = c; k < col; k++)
{
process.stdout.write("  " + matrix[r][k]);
}
process.stdout.write("\n");
}
process.stdout.write("\n");
}
}

function main()
{
var obj = new MyMatrix();
//  Case 1
//  Define matrix of integer elements
var matrix1 = [
[4, 6, -2, 2] ,
[3, -1, 5, 3] ,
[1, 4, 4, 6] ,
[9, 4, 6, 2] ,
[1, 2, 8, 9]
];
obj.print_l_shape(matrix1);
//  Case 2
//  Define matrix of integer elements
var matrix2 = [
[1, 9, 8, 3, 7] ,
[3, -1, 5, 3, 8] ,
[1, 3, 4, 6, 11] ,
[0, 8, 8, 6, 2] ,
[1, 3, 4, 5, 10]
];
obj.print_l_shape(matrix2);
}
main();``````

#### Output

`````` L Shapes
4  3  1  9  1  2  8  9
6  -1  4  4  6  2
-2  5  4  6
2  3

L Shapes
1  3  1  0  1  3  4  5  10
9  -1  3  8  8  6  2
8  5  4  6  11
3  3  8
7
``````
``````#   Python 3 Program
#   Traverse matrix in L shape

class MyMatrix :
# Print the L shape in given matrix
def print_l_shape(self, matrix) :
# Get the size
row = len(matrix)
col = len(matrix[0])
print(" L Shapes \n", end = "")
# Loop controlling variables
c = 0
r = 0
k = 0
while (c < col) :
r = 0
while (r < (row - 1) - c) :
print("  ", matrix[r][c], end = "")
r += 1

k = c
while (k < col) :
print("  ", matrix[r][k], end = "")
k += 1

print("\n", end = "")
c += 1

print("\n", end = "")

def main() :
obj = MyMatrix()
#   Case 1
#   Define matrix of integer elements
matrix1 = [
[4, 6, -2, 2] ,
[3, -1, 5, 3] ,
[1, 4, 4, 6] ,
[9, 4, 6, 2] ,
[1, 2, 8, 9]
]
obj.print_l_shape(matrix1)
#   Case 2
#   Define matrix of integer elements
matrix2 = [
[1, 9, 8, 3, 7] ,
[3, -1, 5, 3, 8] ,
[1, 3, 4, 6, 11] ,
[0, 8, 8, 6, 2] ,
[1, 3, 4, 5, 10]
]
obj.print_l_shape(matrix2)

if __name__ == "__main__": main()``````

#### Output

`````` L Shapes
4   3   1   9   1   2   8   9
6   -1   4   4   6   2
-2   5   4   6
2   3

L Shapes
1   3   1   0   1   3   4   5   10
9   -1   3   8   8   6   2
8   5   4   6   11
3   3   8
7
``````
``````#  Ruby Program
#  Traverse matrix in L shape

class MyMatrix
#   Print the L shape in given matrix
def print_l_shape(matrix)
#   Get the size
row = matrix.length
col = matrix[0].length
print(" L Shapes \n")
#   Loop controlling variables
c = 0
r = 0
k = 0
while (c < col)
r = 0
while (r < (row - 1) - c)
print("  ", matrix[r][c])
r += 1
end
k = c
while (k < col)
print("  ", matrix[r][k])
k += 1
end

print("\n")
c += 1
end

print("\n")
end

end

def main()
obj = MyMatrix.new()
#   Case 1
#   Define matrix of integer elements
matrix1 = [
[4, 6, -2, 2] ,
[3, -1, 5, 3] ,
[1, 4, 4, 6] ,
[9, 4, 6, 2] ,
[1, 2, 8, 9]
]
obj.print_l_shape(matrix1)
#   Case 2
#   Define matrix of integer elements
matrix2 = [
[1, 9, 8, 3, 7] ,
[3, -1, 5, 3, 8] ,
[1, 3, 4, 6, 11] ,
[0, 8, 8, 6, 2] ,
[1, 3, 4, 5, 10]
]
obj.print_l_shape(matrix2)
end

main()``````

#### Output

`````` L Shapes
4  3  1  9  1  2  8  9
6  -1  4  4  6  2
-2  5  4  6
2  3

L Shapes
1  3  1  0  1  3  4  5  10
9  -1  3  8  8  6  2
8  5  4  6  11
3  3  8
7

``````
``````/*
Scala Program
Traverse matrix in L shape
*/
class MyMatrix
{
//   Print the L shape in given matrix
def print_l_shape(matrix: Array[Array[Int]]): Unit = {
//   Get the size
var row: Int = matrix.length;
var col: Int = matrix(0).length;
print(" L Shapes \n");
//   Loop controlling variables
var c: Int = 0;
var r: Int = 0;
var k: Int = 0;
while (c < col)
{
r = 0;
while (r < (row - 1) - c)
{
print("  " + matrix(r)(c));
r += 1;
}
k = c;
while (k < col)
{
print("  " + matrix(r)(k));
k += 1;
}
print("\n");
c += 1;
}
print("\n");
}
}
object Main
{
def main(args: Array[String]): Unit = {
var obj: MyMatrix = new MyMatrix();
//   Case 1
//   Define matrix of integer elements
var matrix1: Array[Array[Int]] = Array(
Array(4, 6, -2, 2),
Array(3, -1, 5, 3),
Array(1, 4, 4, 6),
Array(9, 4, 6, 2),
Array(1, 2, 8, 9)
);
obj.print_l_shape(matrix1);
//   Case 2
//   Define matrix of integer elements
var matrix2: Array[Array[Int]] = Array(
Array(1, 9, 8, 3, 7),
Array(3, -1, 5, 3, 8),
Array(1, 3, 4, 6, 11),
Array(0, 8, 8, 6, 2),
Array(1, 3, 4, 5, 10)
);
obj.print_l_shape(matrix2);
}
}``````

#### Output

`````` L Shapes
4  3  1  9  1  2  8  9
6  -1  4  4  6  2
-2  5  4  6
2  3

L Shapes
1  3  1  0  1  3  4  5  10
9  -1  3  8  8  6  2
8  5  4  6  11
3  3  8
7
``````
``````/*
Swift 4 Program
Traverse matrix in L shape
*/
class MyMatrix
{
//   Print the L shape in given matrix
func print_l_shape(_ matrix: [[Int]])
{
//   Get the size
let row: Int = matrix.count;
let col: Int = matrix[0].count;
print(" L Shapes \n", terminator: "");
//   Loop controlling variables
var c: Int = 0;
var r: Int = 0;
var k: Int = 0;
while (c < col)
{
r = 0;
while (r < (row - 1) - c)
{
print("  ", matrix[r][c], terminator: "");
r += 1;
}
k = c;
while (k < col)
{
print("  ", matrix[r][k], terminator: "");
k += 1;
}
print("\n", terminator: "");
c += 1;
}
print("\n", terminator: "");
}
}
func main()
{
let obj: MyMatrix = MyMatrix();
//   Case 1
//   Define matrix of integer elements
let matrix1: [[Int]] = [
[4, 6, -2, 2] ,
[3, -1, 5, 3] ,
[1, 4, 4, 6] ,
[9, 4, 6, 2] ,
[1, 2, 8, 9]
];
obj.print_l_shape(matrix1);
//   Case 2
//   Define matrix of integer elements
let matrix2: [[Int]] = [
[1, 9, 8, 3, 7] ,
[3, -1, 5, 3, 8] ,
[1, 3, 4, 6, 11] ,
[0, 8, 8, 6, 2] ,
[1, 3, 4, 5, 10]
];
obj.print_l_shape(matrix2);
}
main();``````

#### Output

`````` L Shapes
4   3   1   9   1   2   8   9
6   -1   4   4   6   2
-2   5   4   6
2   3

L Shapes
1   3   1   0   1   3   4   5   10
9   -1   3   8   8   6   2
8   5   4   6   11
3   3   8
7
``````
``````/*
Kotlin Program
Traverse matrix in L shape
*/
class MyMatrix
{
//   Print the L shape in given matrix
fun print_l_shape(matrix: Array<Array<Int>>): Unit
{
//   Get the size
var row: Int = matrix.count();
var col: Int = matrix[0].count();
print(" L Shapes \n");
// Loop controlling variables
var c: Int = 0;
var r: Int ;
var k: Int ;
while (c < col)
{
r = 0;
while (r < (row - 1) - c)
{
print("  " + matrix[r][c]);
r += 1;
}
k = c;
while (k < col)
{
print("  " + matrix[r][k]);
k += 1;
}
print("\n");
c += 1;
}
print("\n");
}
}
fun main(args: Array<String> ): Unit
{
var obj: MyMatrix = MyMatrix();
//   Case 1
//   Define matrix of integer elements
var matrix1: Array <Array<Int>> = arrayOf(
arrayOf(4, 6, -2, 2),
arrayOf(3, -1, 5, 3),
arrayOf(1, 4, 4, 6),
arrayOf(9, 4, 6, 2),
arrayOf(1, 2, 8, 9));
obj.print_l_shape(matrix1);
//   Case 2
//   Define matrix of integer elements
var matrix2: Array<Array<Int>> = arrayOf(
arrayOf(1, 9, 8, 3, 7),
arrayOf(3, -1, 5, 3, 8),
arrayOf(1, 3, 4, 6, 11),
arrayOf(0, 8, 8, 6, 2),
arrayOf(1, 3, 4, 5, 10));
obj.print_l_shape(matrix2);
}``````

#### Output

`````` L Shapes
4  3  1  9  1  2  8  9
6  -1  4  4  6  2
-2  5  4  6
2  3

L Shapes
1  3  1  0  1  3  4  5  10
9  -1  3  8  8  6  2
8  5  4  6  11
3  3  8
7
``````

## Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.