解题思路
- 手动模拟螺旋矩阵,分别实现四个方向的代码,将数组依次填入数组中即可
- 需要注意的是,如果n为奇数,说明最后只剩下中间的一个位置,将最后一个数直接填入即可;若n为偶数,则正好能够遍历n/2遍
class Solution {
public int[][] generateMatrix(int n) {
int[][] res = new int[n][n];
int count = 1;
int start = 0;
int loop = 0;
int i, j;
while(loop++ < n/2) {
for(j=start; j<n-loop; j++) {
res[start][j] = count++;
}
for(i=start; i<n-loop; i++) {
res[i][j] = count++;
}
for(; j>=loop; j--) {
res[i][j] = count++;
}
for(; i>=loop; i--) {
res[i][j] = count++;
}
start++;
}
if(n % 2 == 1) {
res[start][start] = count;
}
return res;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了