给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
输入: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) {
List<Integer> list = new ArrayList<>();
int n = matrix.length;
int m = matrix[0].length;
int count = n*m;
int t = 0;
int b = n-1;
int l = 0;
int r = m-1;
while(count >= 1){
for(int i = l;i <= r && count >= 1;i++){
list.add(matrix[t][i]);
count--;
}
t++;
for(int i = t;i <= b && count >= 1;i++){
list.add(matrix[i][r]);
count--;
}
r--;
for(int i = r;i >= l && count>=1;i--){
list.add(matrix[b][i]);
count--;
}
b--;
for(int i = b;i >= t && count >= 1;i--){
list.add(matrix[i][l]);
count--;
}
l++;
}
return list;
}
}