题目描述
leetcode 第54题:螺旋矩阵
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
示例:
输入:matrix =[[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]
解题方法
模拟
参照题解
- 解题思路
获取矩阵
matrix
的行数m
和列数n
模拟matrix
按右下左上走过的路径
首先设定四个方向的边界right,down,left,up
按顺序在四个方向上遍历矩阵
创建数组ans
来记录每次遍历的元素
向右遍历,重新设定上边界,若上边界大于下边界,跳出循环
向下遍历,重新设定右边界,若右边界小于左边界,跳出循环
向左遍历,重新设定下边界,若下边界小于上边界,跳出循环
向上遍历,重新设定左边界,若左边界大于右边界,跳出循环
最终在四个方向都没有可遍历的元素,表示遍历完成
得到的ans
就是矩阵按照顺时针螺旋顺序返回的所有元素
- 复杂度
时间复杂度:O(mn),m和n分别为矩阵的行数和列数
空间复杂度:O(1)
- 代码实现
python3
1 | class Solution: |
php
1 | class Solution { |