1. 程式人生 > 其它 >2022-4-2 高頻面試題

2022-4-2 高頻面試題

54. 螺旋矩陣

給你一個 m 行 n 列的矩陣 matrix ,請按照 順時針螺旋順序 ,返回矩陣中的所有元素。

 

 1 class Solution {
 2     public List<Integer> spiralOrder(int[][] matrix) {
 3         int m=matrix.length,n=matrix[0].length;
 4         List<Integer> ans=new ArrayList<>();
 5         int lx=0,ly=0,rx=m-1,ry=n-1;
 6         while
(lx<=rx&&ly<=ry){ 7 System.out.println(lx+" "+ly+" "+rx+" "+ry); 8 for (int i=ly;i<=ry;i++) ans.add(matrix[lx][i]); 9 for (int i=lx+1;i<=rx;i++) ans.add(matrix[i][ry]); 10 if (lx<rx&&ly<ry){ 11 for (int
i=ry-1;i>=ly;i--) ans.add(matrix[rx][i]); 12 for (int i=rx-1;i>lx;i--) ans.add(matrix[i][ly]); 13 } 14 lx++; 15 ly++; 16 rx--; 17 ry--; 18 } 19 20 return ans; 21 } 22 23 24 }

思路:一層一層模擬。需要注意後面兩層需要判斷是否遍歷。