劍指offer-29 順時針列印矩陣 - 模擬
阿新 • • 發佈:2021-01-21
輸入一個矩陣,按照從外向裡以順時針的順序依次打印出每一個數字。
思路就是不斷移動上下左右的邊界,按照上右下左的方式進行遍歷
class Solution { public int[] spiralOrder(int[][] matrix) { List<Integer> list=new ArrayList<Integer>(); if(matrix.length==0){ return new int[0]; } int m=matrix.length; intn=matrix[0].length; int t=0,l=0,r=n-1,b=m-1; while(list.size()<m*n){ //從左到右 for(int i=l;i<=r;i++){ list.add(matrix[t][i]); } ++t; //從上到下 for(int i=t;i<=b;i++){ list.add(matrix[i][r]); }--r; //從右到左 for(int i=r;i>=l;i--){ list.add(matrix[b][i]); } --b; //從下到上 for(int i=b;i>=t;i--){ list.add(matrix[i][l]); } ++l; } int []res=new int[m*n]; for(inti=0;i<m*n;i++){ res[i]=list.get(i); } return res; } }