【leetcode刷题笔记】Spiral Matrix II
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 ] ]
题解:以前做过的Spiral Matrix是给一个矩阵螺旋式的输出,这道题是给一个n,螺旋式的生成矩阵。和第一个的做法类似,定义四个变量
left:当前未填的子矩阵的最左边界
right:当前未填的子矩阵的最右边界
up:当前未填子矩阵的最上边界
down:当前未填子矩阵的最下边界
然后每次进行四个循环,做一个螺旋。
代码如下:
1 public class Solution { 2 public int[][] generateMatrix(int n) { 3 int[][] matrix = new int[n][n]; 4 int left = 0; 5 int right = n-1; 6 int up = 0; 7 int down = n-1; 8 int number = 0; 9 while(number <= n*n-1){ 10 for(int i = left;i <= right;i++){ 11 matrix[up][i] = number+1; 12 number++; 13 } 14 up++; 15 16 for(int i = up;i <= down;i++){ 17 matrix[i][right] = number+1; 18 number++; 19 } 20 right--; 21 22 for(int i = right;i >= left;i--){ 23 matrix[down][i] = number+1; 24 number++; 25 } 26 down--; 27 28 for(int i = down;i >= up;i--){ 29 matrix[i][left] = number+1; 30 number++; 31 } 32 left++; 33 } 34 return matrix; 35 } 36 }
分类:
leetcode刷题总结
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了