Dominância diagonal

Uma matriz quadrada (com o mesmo número de linhas e colunas) é chamada de estritamente diagonal dominante por linhas se “o valor absoluto de cada elemento da diagonal principal for estritamente maior que a soma dos valores absolutos dos outros elementos da mesma linha”.

Para ilustrar...

[
  [10, 3, 6],
  [2, -9, -6],
  [1, -1, 4]
]

Os valores absolutos do canto superior esquerdo ao canto inferior direito são:

  • 10 = Primeiro elemento da primeira linha.
  • 9 = Segundo elemento da segunda linha.
  • 4 = Terceiro elemento da terceira linha.

... resultando em um total de 23 para a diagonal.

Na primeira linha...

  • O valor absoluto do elemento diagonal é 10.
  • Os valores absolutos dos outros elementos são 3 e 6, cuja soma é 9.

... portanto, até aqui, a matriz é estritamente diagonal dominante por linhas, pois 10 > 9.

Na segunda linha...

  • O valor absoluto do elemento diagonal é 9.
  • Os valores absolutos dos outros elementos da segunda linha são 2 e 6, cuja soma é 8.

... portanto, a segunda linha é estritamente diagonal dominante, pois 9 > 8.

Se o primeiro valor fora da diagonal nessa linha mudar de 2 para 3, a soma dos outros valores absolutos será 9, então a dominância estrita não será satisfeita:

[
  [10, 3, 6],
  [3, -9, -6],
  [1, -1,  4]
]

Para que uma matriz quadrada seja estritamente diagonal dominante por linhas, todas as suas linhas devem satisfazer a mesma condição que a linha 1.

Escreva uma função que determine se uma matriz quadrada fornecida é estritamente diagonal dominante por linhas.

Exemplos

Program.diagDom(new int[][]{new int[]{2, -1}, new int[]{-1, 2}}) ➞ true

Program.diagDom(new int[][]{new int[]{0, 1}, new int[]{1, 0}}) ➞ false

Program.diagDom(new int[][]{new int[]{10, 3, 6}, new int[]{2, -9, -6}, new int[]{1, -1, 4}}) ➞ true

Program.diagDom(new int[][]{new int[]{10, 3, 6}, new int[]{3, -9, -6}, new int[]{1, -1, 4}}) ➞ false

Notas

Como mostrado nos exemplos, o tamanho das matrizes variará, mas elas sempre serão quadradas.