本文共 1293 字,大约阅读时间需要 4 分钟。
题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5] 示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
输出:[1,2,3,4,8,12,11,10,9,5,6,7]来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。Java
class Solution { public int[] spiralOrder(int [][] matrix){ if(matrix==null) return null; int row=matrix.length; if(row==0) return new int[0]; int col=matrix[0].length; int [] res=new int [row*col]; int left=0; //左边界 int top=0; //上边界 int right=col-1; int down=row-1; int count=0; while(true){ //从左到右 for(int i=left;i<=right;i++){ res[count++]=matrix[top][i]; } if(++top>down) break; //从上到下 for(int i=top;i<=down;i++){ res[count++]=matrix[i][right]; } if(--right=left;i--){ res[count++]=matrix[down][i]; } //从下向上 if(--down =top;i--){ res[count++]=matrix[i][left]; } if(++left> right) break ; } return res; }}