力扣 54 .螺旋矩阵
文章目录
- 题目介绍
- 题解
题目介绍
题解
代码如下:
class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> res = new ArrayList<>();if (matrix.length == 0){return res;}int l = 0, r = matrix[0].length - 1, t = 0, b = matrix.length - 1, x = 0;while (true) {// 从左向右for (int i = l; i <= r; i++) res.add(matrix[t][i]); if (++t > b) break; // 上边界t+1,同时判断是否打印完毕(边界是否相遇了)// 从上向下for (int i = t; i <= b; i++) res.add(matrix[i][r]); if (l > --r) break;// 从右向左for (int i = r; i >= l; i--) res.add(matrix[b][i]); if (t > --b) break;// 从下向上for (int i = b; i >= t; i--) res.add(matrix[i][l]);if (++l > r) break;}return res;}
}