题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
题目链接:https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/
Java
class Solution {
public int[] spiralOrder(int[][] matrix) {
if(matrix.length == 0) return new int[0];
int l = 0,
r = matrix[0].length - 1,
t = 0,
b = matrix.length - 1,
x = 0,
i;
int[] res = new int[(r + 1) * (b + 1)];
while(true){
for(i = l; i <= r; ++i)
res[x++] = matrix[t][i];
if(++t > b)
break;
for(i = t; i <= b; ++i)
res[x++] = matrix[i][r];
if(--r < l)
break;
for(i = r; i >= l; --i)
res[x++] = matrix[b][i];
if(--b < t)
break;
for(i = b; i >= t; --i)
res[x++] = matrix[i][l];
if(++l > r)
break;
}
return res;
}
}