LeetCode每日一题,54. Spiral Matrix
先看题目描述
大意就是给定一个矩阵 matrix,让我们按照顺时针的顺序将其螺旋输出
算法和思路
按层模拟
可以将矩阵看成若干层,首先输出最外层的元素,然后输出内层的元素,就这样逐层的输出矩阵元素
具体到实现上,设矩阵有 m 行 n 列,矩阵的层数就为 (min{m,n} + 1) / 2,然后每层中有四个循环,分别是向右,向下,向左,向上的输出矩阵元素。注意特殊情况,当最内层只有一行或一列元素时,则不分为四次循环,而是直接一次性输出该行或该列元素
思路不难,但是实现细节比较多,容易出错,具体看下面代码吧
算法源码
按层模拟
1 | class Solution { |