Вычислить сумму главной диагонали и количество строк и столбцов, содержащих повторяющиеся значения в квадратной матрице

Опубликовано: 19 Сентября, 2022

Дана матрица M[][] размерности N * N, состоящая только из целых чисел в диапазоне от 1 до N , задача состоит в том, чтобы вычислить сумму элементов матрицы, присутствующих на главной диагонали, количество строк и столбцов, содержащих повторяющиеся ценности.

Примеры:

Input: N = 4, M[][] = {{1, 2, 3, 4}, {2, 1, 4, 3}, {3, 4, 1, 2}, {4, 3, 2, 1}}
Output: 4 0 0
Explanation:
Sum of diagonal = M[0][0] + M[1][1] + M[2][2] + M[3][3] = 4.
No row or column consists of repeated elements.
Therefore, the required sum is 4

Input: N = 3, M[][] = {{2, 1, 3}, {1, 3, 2}, {1, 2, 3}}
Output: 8 0 2
Explanation:
Sum of diagonal = M[0][0]+M[1][1]+M[2][2] = 8.
No row consists of repeated elements.
1st and 3rd columns consists of repeated elements.

Подход: подход состоит в том, чтобы просто пройтись по всем элементам матрицы и найти сумму диагоналей и количество строк и столбцов, имеющих повторяющиеся значения. Выполните следующие шаги, чтобы решить данную проблему:

  • Инициализируйте переменные trace , rowRepeat и columnRepeat для хранения суммы главной диагонали, количества строк и столбцов, содержащих повторяющиеся матричные элементы соответственно.
  • Пройдите через каждый элемент, присутствующий в матрице M[i][j] , и увеличьте трассировку суммы, если i равно j .
  • Чтобы найти строки, содержащие повторяющиеся значения, выполните итерацию по одной строке за раз, сравните значения и проверьте, существует ли повторяющееся значение или нет. При получении первой пары повторяющихся элементов увеличьте rowRepeat на 1 и прервите цикл.
  • Повторите вышеуказанные шаги для каждой строки матрицы.
  • Та же процедура повторяется для всех столбцов, где columnRepeat увеличивается на 1 , если значения совпадают.
  • После завершения всех итераций выведите в качестве результата значение trace , rowRepeat и columnRepeat .

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(N 3 )
Вспомогательное пространство: O(N 2 )