题解 | #顺时针打印矩阵#
顺时针打印矩阵
https://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a
import java.util.*; import java.util.ArrayList; public class Solution { public ArrayList<Integer> printMatrix(int[][] matrix) { ArrayList<Integer> ans = new ArrayList<>(); if (matrix.length == 0 || matrix[0].length == 0) return ans; int m = matrix.length, n = matrix[0].length; int l = 0, r = n - 1; int t = 0, b = m - 1; while (true) { // l -> r for(int j = l; j <= r; j++) ans.add(matrix[t][j]); if(++t > b) break; // t -> b for(int i = t; i <= b; i++) ans.add(matrix[i][r]); if(--r < l) break; // r -> l for(int j = r; j >= l; j--) ans.add(matrix[b][j]); if(--b < t) break; // b -> t for(int i = b; i >= t; i--) ans.add(matrix[i][l]); if(++l > r) break; } return ans; } }