Open In App

# Boundary elements of a Matrix

## 1. Printing Boundary Elements of a Matrix:

Given a matrix of size n x m. Print the boundary elements of the matrix. Boundary elements are those elements that are not surrounded by elements in all four directions, i.e. elements in the first row, first column, last row, and last column

Examples:

Input:  1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8

Output :

1 2 3 4
5       8
1       4
5 6 7 8

Input:
1 2 3
5 6 7
1 2 3

Output:

1 2  3
5    7
1 2 3

Approach: To solve the problem follow the below idea:

The idea is simple. Traverse the matrix and check for every element if that element lies on the boundary or not, if yes then print the element else print space character

Follow the given steps to solve the problem:

• Traverse the array from start to end
• Assign the outer loop to point to the row and the inner row to traverse the elements of row
• If the element lies in the boundary of matrix, then print the element, i.e. if the element lies in 1st row, 1st column, last row, last column
• If the element is not a boundary element print a blank space

Below is the implementation of the above approach:

## C++

 `// C++ program to print boundary element of``// matrix.``#include ``using` `namespace` `std;` `const` `int` `MAX = 100;` `void` `printBoundary(``int` `a[][MAX], ``int` `m, ``int` `n)``{``    ``for` `(``int` `i = 0; i < m; i++) {``        ``for` `(``int` `j = 0; j < n; j++) {``            ``if` `(i == 0 || j == 0 || i == m - 1``                ``|| j == n - 1)``                ``cout << a[i][j] << ``" "``;``            ``else``                ``cout << ``" "``                     ``<< ``" "``;``        ``}``        ``cout << ``"\n"``;``    ``}``}` `// Driver code``int` `main()``{``    ``int` `a[4][MAX] = { { 1, 2, 3, 4 },``                      ``{ 5, 6, 7, 8 },``                      ``{ 1, 2, 3, 4 },``                      ``{ 5, 6, 7, 8 } };` `    ``// Function call``    ``printBoundary(a, 4, 4);``    ``return` `0;``}`

## Java

 `// JAVA Code for Boundary elements of a Matrix``import` `java.io.*;``public` `class` `GFG {` `    ``public` `static` `void` `printBoundary(``int` `a[][], ``int` `m,``                                     ``int` `n)``    ``{``        ``for` `(``int` `i = ``0``; i < m; i++) {``            ``for` `(``int` `j = ``0``; j < n; j++) {``                ``if` `(i == ``0``)``                    ``System.out.print(a[i][j] + ``" "``);``                ``else` `if` `(i == m - ``1``)``                    ``System.out.print(a[i][j] + ``" "``);``                ``else` `if` `(j == ``0``)``                    ``System.out.print(a[i][j] + ``" "``);``                ``else` `if` `(j == n - ``1``)``                    ``System.out.print(a[i][j] + ``" "``);``                ``else``                    ``System.out.print(``"  "``);``            ``}``            ``System.out.println(``""``);``        ``}``    ``}` `    ``/* Driver code */``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `a[][] = { { ``1``, ``2``, ``3``, ``4` `},``                      ``{ ``5``, ``6``, ``7``, ``8` `},``                      ``{ ``1``, ``2``, ``3``, ``4` `},``                      ``{ ``5``, ``6``, ``7``, ``8` `} };` `        ``// Function call``        ``printBoundary(a, ``4``, ``4``);``    ``}``}``// This code is contributed by Arnav Kr. Mandal.`

## Python

 `# Python program to print boundary element``# of the matrix.` `MAX` `=` `100`  `def` `printBoundary(a, m, n):``    ``for` `i ``in` `range``(m):``        ``for` `j ``in` `range``(n):``            ``if` `(i ``=``=` `0``):``                ``print` `a[i][j],``            ``elif` `(i ``=``=` `m``-``1``):``                ``print` `a[i][j],``            ``elif` `(j ``=``=` `0``):``                ``print` `a[i][j],``            ``elif` `(j ``=``=` `n``-``1``):``                ``print` `a[i][j],``            ``else``:``                ``print` `" "``,``        ``print`  `# Driver code``if` `__name__ ``=``=` `"__main__"``:``    ``a ``=` `[[``1``, ``2``, ``3``, ``4``], [``5``, ``6``, ``7``, ``8``],``         ``[``1``, ``2``, ``3``, ``4``], [``5``, ``6``, ``7``, ``8``]]` `    ``# Function call``    ``printBoundary(a, ``4``, ``4``)` `# This code is contributed by Sachin Bisht`

## C#

 `// C# Code for Boundary``// elements of a Matrix``using` `System;` `class` `GFG {` `    ``public` `static` `void` `printBoundary(``int``[, ] a, ``int` `m,``                                     ``int` `n)``    ``{``        ``for` `(``int` `i = 0; i < m; i++) {``            ``for` `(``int` `j = 0; j < n; j++) {``                ``if` `(i == 0)``                    ``Console.Write(a[i, j] + ``" "``);``                ``else` `if` `(i == m - 1)``                    ``Console.Write(a[i, j] + ``" "``);``                ``else` `if` `(j == 0)``                    ``Console.Write(a[i, j] + ``" "``);``                ``else` `if` `(j == n - 1)``                    ``Console.Write(a[i, j] + ``" "``);``                ``else``                    ``Console.Write(``"  "``);``            ``}``            ``Console.WriteLine(``" "``);``        ``}``    ``}` `    ``// Driver Code``    ``static` `public` `void` `Main()``    ``{``        ``int``[, ] a = { { 1, 2, 3, 4 },``                      ``{ 5, 6, 7, 8 },``                      ``{ 1, 2, 3, 4 },``                      ``{ 5, 6, 7, 8 } };` `        ``// Function call``        ``printBoundary(a, 4, 4);``    ``}``}` `// This code is contributed by ajit`

## PHP

 ``

## Javascript

 ``

Output

```1 2 3 4
5     8
1     4
5 6 7 8 ```

Time Complexity: O(N2), where N is the size of the array.
Auxiliary Space: O(1)

## 2. Finding sum of boundary elements:

Given a matrix of size n x m. Find the sum of boundary elements of the matrix. Boundary elements are those elements which are not surrounded by elements in all four directions, i.e. elements in the first row, first column, last row, and last column

Examples:

Input:  1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8

Output: 54
Explanation: The boundary elements of the matrix

1 2 3 4
5       8
1       4
5 6 7 8

Sum = 1+2+3+4+5+8+1+4+5+6+7+8 = 54

Input:  1 2 3
5 6 7
1 2 3

Output: 24
Explanation: The boundary elements of the matrix

1 2 3
5   7
1 2 3

Sum = 1+2+3+5+7+1+2+3 = 24

To solve the problem follow the below idea:

The idea is simple. Traverse the matrix and check for every element if that element lies on the boundary or not, if yes then add them to get the sum of all the boundary elements

Follow the given steps to solve the problem:

• Create a variable to store the sum and Traverse the array from start to end
• Assign the outer loop to point to the row and the inner row to traverse the elements of the row
• If the element lies in the boundary of the matrix then add the element to the sum, i.e. if the element lies in the 1st row, 1st column, last row, and last column
• Print the sum

Below is the implementation of the above approach:

## C++

 `// C++ program to find sum of boundary elements``// of matrix.``#include ``using` `namespace` `std;` `const` `int` `MAX = 100;` `int` `getBoundarySum(``int` `a[][MAX], ``int` `m, ``int` `n)``{``    ``long` `long` `int` `sum = 0;``    ``for` `(``int` `i = 0; i < m; i++) {``        ``for` `(``int` `j = 0; j < n; j++) {``            ``if` `(i == 0)``                ``sum += a[i][j];``            ``else` `if` `(i == m - 1)``                ``sum += a[i][j];``            ``else` `if` `(j == 0)``                ``sum += a[i][j];``            ``else` `if` `(j == n - 1)``                ``sum += a[i][j];``        ``}``    ``}``    ``return` `sum;``}` `// Driver code``int` `main()``{``    ``int` `a[][MAX] = { { 1, 2, 3, 4 },``                     ``{ 5, 6, 7, 8 },``                     ``{ 1, 2, 3, 4 },``                     ``{ 5, 6, 7, 8 } };` `    ``// Function call``    ``long` `long` `int` `sum = getBoundarySum(a, 4, 4);``    ``cout << ``"Sum of boundary elements is "` `<< sum;``    ``return` `0;``}`

## Java

 `// JAVA Code for Finding sum of boundary elements``import` `java.io.*;``public` `class` `GFG {` `    ``public` `static` `long` `getBoundarySum(``int` `a[][], ``int` `m,``                                      ``int` `n)``    ``{``        ``long` `sum = ``0``;``        ``for` `(``int` `i = ``0``; i < m; i++) {``            ``for` `(``int` `j = ``0``; j < n; j++) {``                ``if` `(i == ``0``)``                    ``sum += a[i][j];``                ``else` `if` `(i == m - ``1``)``                    ``sum += a[i][j];``                ``else` `if` `(j == ``0``)``                    ``sum += a[i][j];``                ``else` `if` `(j == n - ``1``)``                    ``sum += a[i][j];``            ``}``        ``}``        ``return` `sum;``    ``}` `    ``/* Driver code */``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `a[][] = { { ``1``, ``2``, ``3``, ``4` `},``                      ``{ ``5``, ``6``, ``7``, ``8` `},``                      ``{ ``1``, ``2``, ``3``, ``4` `},``                      ``{ ``5``, ``6``, ``7``, ``8` `} };``        ``long` `sum = getBoundarySum(a, ``4``, ``4``);` `        ``// Function call``        ``System.out.println(``"Sum of boundary elements"``                           ``+ ``" is "` `+ sum);``    ``}``}``// This code is contributed by Arnav Kr. Mandal.`

## Python

 `# Python program to print boundary element``# of the matrix.` `MAX` `=` `100`  `def` `printBoundary(a, m, n):``    ``sum` `=` `0``    ``for` `i ``in` `range``(m):``        ``for` `j ``in` `range``(n):``            ``if` `(i ``=``=` `0``):``                ``sum` `+``=` `a[i][j]``            ``elif` `(i ``=``=` `m``-``1``):``                ``sum` `+``=` `a[i][j]``            ``elif` `(j ``=``=` `0``):``                ``sum` `+``=` `a[i][j]``            ``elif` `(j ``=``=` `n``-``1``):``                ``sum` `+``=` `a[i][j]``    ``return` `sum`  `# Driver code``if` `__name__ ``=``=` `"__main__"``:``    ``a ``=` `[[``1``, ``2``, ``3``, ``4``], [``5``, ``6``, ``7``, ``8``],``         ``[``1``, ``2``, ``3``, ``4``], [``5``, ``6``, ``7``, ``8``]]` `    ``# Function call``    ``sum` `=` `printBoundary(a, ``4``, ``4``)``    ``print` `"Sum of boundary elements is"``, ``sum` `# This code is contributed by Sachin Bisht`

## C#

 `// C# Code for Finding sum``// of boundary elements``using` `System;` `class` `GFG {``    ``public` `static` `long` `getBoundarySum(``int``[, ] a, ``int` `m,``                                      ``int` `n)``    ``{``        ``long` `sum = 0;``        ``for` `(``int` `i = 0; i < m; i++) {``            ``for` `(``int` `j = 0; j < n; j++) {``                ``if` `(i == 0)``                    ``sum += a[i, j];``                ``else` `if` `(i == m - 1)``                    ``sum += a[i, j];``                ``else` `if` `(j == 0)``                    ``sum += a[i, j];``                ``else` `if` `(j == n - 1)``                    ``sum += a[i, j];``            ``}``        ``}``        ``return` `sum;``    ``}` `    ``// Driver Code``    ``static` `public` `void` `Main()``    ``{``        ``int``[, ] a = { { 1, 2, 3, 4 },``                      ``{ 5, 6, 7, 8 },``                      ``{ 1, 2, 3, 4 },``                      ``{ 5, 6, 7, 8 } };` `        ``// Function call``        ``long` `sum = getBoundarySum(a, 4, 4);``        ``Console.WriteLine(``"Sum of boundary"``                          ``+ ``" elements is "` `+ sum);``    ``}``}` `// This code is contributed by ajit`

## PHP

 ``

## Javascript

 ``

Output

`Sum of boundary elements is 54`

Time Complexity: O(N2), where N is the size of the array
Auxiliary Space: O(1)

This article is contributed by Sarthak Kohli. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.