leetcode 59.螺旋矩阵II

mac2026-01-06  6

给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]

方法:与leetcode 54.螺旋矩阵一样

class Solution { public int[][] generateMatrix(int n) { int[][] matrix = new int[n][n]; int r1 = 0, r2 = n - 1; int c1 = 0, c2 = n - 1; int i = 1; while(r1 <= r2 && c1 <= c2){ for(int c = c1; c <= c2; c++) matrix[r1][c] = i++; for(int r = r1 + 1; r <= r2; r++) matrix[r][c2] = i++; if(r1 < r2 && c1 < c2){ for(int c = c2 - 1; c >= c1 + 1; c--) matrix[r2][c] = i++; for(int r = r2; r >= r1 + 1; r--) matrix[r][c1] = i++; } r1++; r2--; c1++; c2--; } return matrix; } }
最新回复(0)