题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
示例 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) break;
//从右向左
for(int i=right;i>=left;i--){
res[count++]=matrix[down][i];
}
//从下向上
if(--down<top) break;
for(int i=down;i>=top;i--){
res[count++]=matrix[i][left];
}
if(++left> right) break ;
}
return res;
}
}
本文介绍如何使用Java解决LeetCode上的矩阵螺旋顺序打印问题,通过示例和代码展示从外向里按顺时针顺序遍历矩阵的方法。
1437

被折叠的 条评论
为什么被折叠?



