Выведите K-ю границу матрицы
Дана квадратная матрица mat[][] и положительное целое число K . Задача состоит в том, чтобы напечатать K -ю границу mat[][] .
Примеры:
Input: mat[][] = {{1, 2, 3, 4, 5}, K = 1
{6, 7, 8, 9, 10}
{11, 12, 13, 14, 15}
{16, 17, 18, 19, 20}
{21, 22, 23, 24, 25}}
Output: 1 2 3 4 5
6 10
11 15
16 20
21 22 23 24 25
Explanation: The first boundary of mat[][] is above.Input: mat[][] = {{1, 2, 3}, K = 2
{4, 5, 6}
{7, 8, 9}}
Output: 5
Подход: Эта проблема основана на реализации. Пройдите матрицу и проверьте для каждого элемента, лежит ли этот элемент на K-й границе или нет. Если да, то напечатайте элемент, иначе напечатайте символ пробела. Выполните следующие шаги, чтобы решить данную проблему.
- для i от 0 до N
- для j in от 0 до N
- if((i == K – 1 или i == N – K) и (j >= K – 1 и j <= N – K))
- принт мат[i][j]
- иначе, если (j == K – 1 или j == N – K) и (i >= K – 1 и i <= N – K):
- принт мат[i][j]
- if((i == K – 1 или i == N – K) и (j >= K – 1 и j <= N – K))
- для j in от 0 до N
- Это даст требуемую K-ю границу мата[][]
Ниже приведена реализация описанного выше подхода.
Временная сложность: O(N^2)
Космическая сложность: O(1)