59. 螺旋矩阵 II
题目描述
给你一个正整数 n
,生成一个包含 1
到 n2
所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
。
输入输出
1 2 3 4 5
| 输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]]
输入:n = 1 输出:[[1]]
|
大致思路
模拟生成矩阵
java实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| class Solution { public int[][] generateMatrix(int n) { int left = 0, right = n - 1; int top = 0, bottom = n - 1; int[][] matrix = new int[n][n]; int num = 1, tar = n*n; while(num <= tar){ for(int i = left; i <= right; i++){ matrix[top][i] = num++; } top++; for(int i = top; i <= bottom; i++){ matrix[i][right] = num++; } right--; for(int i = right; i >= left; i--){ matrix[bottom][i] = num++; } bottom--; for(int i = bottom; i >= top; i--){ matrix[i][left] = num++; } left++; } return matrix; } }
|