Skip to content

[LeetCode 59] 螺旋矩阵 II

中等已解决Aug 14, 2025(15天前) 时间 O(n²) 空间 O(n²) 原题链接

🎯 请点击上方原题链接,查看题目描述👆

💭 解题思路#

顺序填充:从左到右——>从上到下——>从右到左——>从下到上

💻 代码实现#

class Solution {
public int[][] generateMatrix(int n) {
int[][] res = new int[n][n];
int left = 0,right = n - 1,top = 0,bottom = n - 1;
int count = 0;
while(count < n * n){
//从左到右
if(top <= bottom){
for(int i = left;i <= right;i++){
count++;
res[top][i] = count;
}
top++;
}
//上到下
if(left <= right){
for(int i = top;i <= bottom;i++){
count++;
res[i][right] = count;
}
right--;
}
//右到左
if(top <= bottom){
for(int i = right;i >= left;i--){
count++;
res[bottom][i] = count;
}
bottom--;
}
//下到上
if(left <= right){
for(int i = bottom;i >= top;i--){
count++;
res[i][left] = count;
}
left++;
}
}
return res;
}
}