心得:螺旋矩阵,定义数组的四个边界,根据边界判断,
还要想好判断条件。每个方向判断一次。
心得:
1 class Solution { 2 public int[][] generateMatrix(int n) { 3 if(n<1) 4 return new int[0][0]; 5 int[][] arr=new int[n][n]; 6 int top=0,bot=n-1,left=0,right=n-1,size=1; 7 while(size<=n*n) 8 { 9 for(int i=left;i<=right;i++,size++) 10 { 11 arr[top][i]=size; 12 } 13 top++; 14 if(size<=n*n) 15 { 16 for(int i=top;i<=bot;i++,size++) 17 { 18 arr[i][right]=size; 19 } 20 right--; 21 } 22 if(size<=n*n) 23 { 24 for(int i=right;i>=left;i--,size++) 25 { 26 arr[bot][i]=size; 27 } 28 bot--; 29 } 30 if(size<=n*n) 31 { 32 for(int i=bot;i>=top;i--,size++) 33 { 34 arr[i][left]=size; 35 } 36 left++; 37 } 38 } 39 return arr; 40 } 41 }