Spiral Matrix II

mac2022-06-30  74

题目

Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

For example,Given n = 3,

You should return the following matrix:

[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]

代码:参考leetcode教材35题, spiral matrix。

1 public class Solution { 2 public int[][] generateMatrix(int n) 3 { 4 int[][] matrix = new int [n][n]; 5 if (n==0) return matrix; 6 int k = 1; 7 int m = n; 8 int row = 0, col = -1; 9 while(true) 10 { 11 for(int i=0;i<n;i++) 12 { 13 matrix[row][++col]=k++; 14 } 15 if(--m==0)break; 16 17 for(int i=0;i<m;i++) 18 { 19 matrix[++row][col]=k++; 20 } 21 if(--n==0)break; 22 23 for(int i=0;i<n;i++) 24 { 25 matrix[row][--col]=k++; 26 } 27 if(--m==0)break; 28 29 for(int i=0;i<m;i++) 30 { 31 matrix[--row][col]=k++; 32 } 33 if(--n==0)break; 34 } 35 return matrix; 36 37 38 } 39 }

 

转载于:https://www.cnblogs.com/hygeia/p/4632273.html

最新回复(0)