给你一个 m
行 n
列的矩阵 matrix
,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
示例 1:
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]
class Solution { public List<Integer> spiralOrder(int[][] matrix) { if(matrix.length == 0 || matrix[0].length==0) return new ArrayList(); int size = matrix.length*matrix[0].length; List<Integer> result = new ArrayList(size); for(int top=0, bot=matrix.length, left=0, right=matrix[0].length; result.size()!=size; top++, bot--, left++, right--){ for(int i=top,j=left;j<right;j++){ result.add(matrix[i][j]); } for(int i=top+1,j=right-1;i<bot;i++){ result.add(matrix[i][j]); } for(int i=bot-1,j=right-2;j>left&&i>top;j--){ result.add(matrix[i][j]); } for(int i=bot-1,j=left;i>top&&j<right-1;i--){ result.add(matrix[i][j]); } } return result; } }
最近有点忙,抽空写得,但是我也太菜了,思路没问题,但是循环的边界控制有问题,一个一个试用例调整才修改好。
[算法学习] [006] - 56. 螺旋矩阵 - 力扣打卡
原文:https://www.cnblogs.com/wdx0/p/14548249.html