此问题有多个子问题。
给定一个二维矩阵,按照螺旋的顺序,打印结果。例如给定二维矩阵:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
打印结果为:
1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10
示意图:
设打印结果中,数在矩阵中的坐标为(x, y)。
观察示意图可以发现,初始坐标为(0, 0),然后x增加到最大值3,变为(3, 0),之后y增加到最大值3,变为(3, 3),之后x减小到最小值0,即(0, 3),之后y减小到最小值1,即(0, 1)。
x和y的规律为:
- y不变,x增加到最大值
- x不变,y增加到最大值
- y不变,x减小到最小值
- x不变,y减小到最小值
- 重复1-4步
另外,x和y的最大值、最小值也在不断变化中。x、y的初始范围是[0, 3],即两者的初始最大值均为3,最小值均为0。每次x、y达到最大值后,其最大值就减小1,每次x、y达到最小值后,其最小值就增大1。
