题目描述
AC代码
剑指offer的顺时针打印矩阵的代码同样也能过。链接->顺时针打印矩阵
class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
List<Integer> list=new ArrayList<>();
if(matrix.length==0) return list;
int left=0,top=0,right=matrix[0].length-1,bottom=matrix.length-1;
while(true){
//从左到右
for(int i=left;i<=right;++i) list.add(matrix[top][i]);
if(++top>bottom) break;
//从上到下
for(int i=top;i<=bottom;++i) list.add(matrix[i][right]);
if(--right<left) break;
//从右到左
for(int i=right;i>=left;--i) list.add(matrix[bottom][i]);
if(--bottom<top) break;
//从下到上
for(int i=bottom;i>=top;--i) list.add(matrix[i][left]);
if(++left>right) break;
}
return list;
}
}