Дано: матрица m x n Надо: верните все элементы матрицы в спиральном порядке. Пример 1:
Дано: matrix= [[1,2,3],[4,5,6],[7,8,9]]
Ответ: [1,2,3,6,9,8,7,4,5]
Пример 2:
Дано: matrix= [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
Ответ: [1,2,3,4,8,12,11,10,9,5,6,7] Ограничения: m == matrix.length n == matrix[i].length 1 <= m, n <= 10 -100 <= matrix[i][j] <= 100 Решение: class Solution:
def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
result = []
start_col, end_col, start_row, end_row = 0, len(matrix[0]) - 1, 0, len(
matrix) - 1
while start_col <= end_col and start_row <= end_row:
for column in range(start_col, end_col + 1):
result.append(matrix[start_row][column])
start_row += 1
for row in range(start_row, end_row + 1):
result.append(matrix[row][end_col])
end_col -= 1
if start_row <= end_row:
for column in range(end_col, start_col - 1, -