Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- input: inputMatrix = [ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20] ]
- output: [1, 2, 3, 4, 5, 10, 15, 20, 19, 18, 17, 16, 11, 6, 7, 8, 9, 14, 13, 12]
- def spiral_copy(inputMatrix):
- output = []
- top_row = 0
- bottom_row = len(inputMatrix) - 1
- left_col = 0
- right_col = len(inputMatrix[0]) - 1
- while top_row <= bottom_row and left_col <= right_col:
- for i in range(left_col, right_col + 1):
- output.append(inputMatrix[top_row][i])
- top_row += 1
- for i in range(top_row, bottom_row + 1):
- output.append(inputMatrix[i][right_col])
- right_col -= 1
- if top_row > bottom_row: break
- for i in range(right_col, left_col - 1, -1):
- output.append(inputMatrix[bottom_row][i])
- bottom_row -= 1
- if left_col > right_col: break
- for i in range(bottom_row, top_row - 1, -1):
- output.append(inputMatrix[i][left_col])
- left_col += 1
- return output
Add Comment
Please, Sign In to add comment