# Java Program for Diagonally Dominant Matrix

• Last Updated : 25 May, 2022

In mathematics, a square matrix is said to be diagonally dominant if for every row of the matrix, the magnitude of the diagonal entry in a row is larger than or equal to the sum of the magnitudes of all the other (non-diagonal) entries in that row. More precisely, the matrix A is diagonally dominant if

For example, The matrix

is diagonally dominant because
|a11| ≥ |a12| + |a13| since |+3| ≥ |-2| + |+1|
|a22| ≥ |a21| + |a23| since |-3| ≥ |+1| + |+2|
|a33| ≥ |a31| + |a32| since |+4| ≥ |-1| + |+2|
Given a matrix A of n rows and n columns. The task is to check whether matrix A is diagonally dominant or not.
Examples :

```Input : A = { { 3, -2, 1 },
{ 1, -3, 2 },
{ -1, 2, 4 } };
Output : YES
Given matrix is diagonally dominant
because absolute value of every diagonal
element is more than sum of absolute values
of corresponding row.

Input : A = { { -2, 2, 1 },
{ 1, 3, 2 },
{ 1, -2, 0 } };
Output : NO```

The idea is to run a loop from i = 0 to n-1 for the number of rows and for each row, run a loop j = 0 to n-1 find the sum of non-diagonal element i.e i != j. And check if diagonal element is greater than or equal to sum. If for any row, it is false, then return false or print “No”. Else print “YES”.

## Java

 `// JAVA Program to check whether given matrix` `// is Diagonally Dominant Matrix.` `import` `java.util.*;`   `class` `GFG {` `    `  `    ``// check the given  matrix is Diagonally` `    ``// Dominant Matrix or not.` `    ``static` `boolean` `isDDM(``int` `m[][], ``int` `n)` `    ``{` `        ``// for each row` `        ``for` `(``int` `i = ``0``; i < n; i++)` `        ``{        ` `     `  `            ``// for each column, finding ` `            ``//sum of each row.` `            ``int` `sum = ``0``;` `            ``for` `(``int` `j = ``0``; j < n; j++)             ` `                ``sum += Math.abs(m[i][j]);        ` `     `  `            ``// removing the diagonal element.` `            ``sum -= Math.abs(m[i][i]);` `     `  `            ``// checking if diagonal element is less ` `            ``// than sum of non-diagonal element.` `            ``if` `(Math.abs(m[i][i]) < sum) ` `                ``return` `false``; ` `       `  `        ``}`   `        ``return` `true``;` `    ``}`   `    ``/* Driver program to test above function */` `    ``public` `static` `void` `main(String[] args) ` `    ``{` `        ``int` `n = ``3``;` `        ``int` `m[][] = { { ``3``, -``2``, ``1` `},` `                      ``{ ``1``, -``3``, ``2` `},` `                      ``{ -``1``, ``2``, ``4` `} };` `     `  `        ``if` `(isDDM(m, n))` `             ``System.out.println(``"YES"``) ;` `        ``else`  `            ``System.out.println(``"NO"``);` `    `  `    ``}` `}`   `// This code is contributed by  Arnav Kr. Mandal.`

Output :

`YES`

Time Complexity: O(N2)

Auxiliary Space: O(1)

Please refer complete article on Diagonally Dominant Matrix for more details!

My Personal Notes arrow_drop_up
Related Articles