How to find the sum of boundary elements of a matrix
Problem overview
Given a matrix, find the sum of boundary elements of the matrix.
For example, consider the below matrix:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
The sum of the boundary elements of the above matrix is as follows:
boundary_sum = 1 + 2 + 3 + 6 + 9 + 8 + 7 + 4 = 40.
Algorithm
Refer to How to find the boundary elements of a matrix? to better understand the boundary elements of a matrix.
- Define a variable
suminitialized to zero. - Run two loops. One loop is iterating along the rows and the other is iterating along the columns. During the iteration, execute the following steps:
- If the row number is either zero or the last row (i.e, the total number of rows of the matrix = 1) then add the element at the current position to the
sumvariable. - If the column number is either zero or the last column (i.e., the total number of columns of the matrix = 1) then add the element at the current position to the
sumvariable.
- If the row number is either zero or the last row (i.e, the total number of rows of the matrix = 1) then add the element at the current position to the
- Print the variable
sum.
- Time Complexity - O(N*N)
- Space Complexity - O(1)
Implementation of the algorithm
import java.util.Arrays;public class Main{private static int printBoundarySum(int[][] matrix){int numRows = matrix.length;int numCols = matrix[0].length;int sum = 0;for(int i = 0; i < numRows; i++){for(int j = 0; j < numCols; j++){if (i == 0 || j == 0 || i == numRows - 1 || j == numCols - 1)sum += matrix[i][j];}}return sum;}private static void printMatrix(int[][] matrix){for (int[] row : matrix)System.out.println(Arrays.toString(row));}public static void main(String[] args){int matrix[][] = {{1, 2, 3},{4, 5, 6},{7, 8 , 9}};printMatrix(matrix);System.out.println("The boundary sum of the above matrix is " + printBoundarySum(matrix));}}
Sum of boundary elements of matrix