制作个人网站,给别人做网站的销售叫什么软件,郑州徐州最新消息,济南seo优化公司助力排名螺旋矩阵 II
题目#xff1a;59. 螺旋矩阵 II - 力扣#xff08;LeetCode#xff09;
给你一个正整数 n #xff0c;生成一个包含 1 到 n2 所有元素#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
示例 1#xff1a; 输入#xff1a;n 3
输出…螺旋矩阵 II
题目59. 螺旋矩阵 II - 力扣LeetCode
给你一个正整数 n 生成一个包含 1 到 n2 所有元素且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
示例 1 输入n 3
输出[[1,2,3],[8,9,4],[7,6,5]]示例 2
输入n 1
输出[[1]]提示
1 n 20
方法一
先准备好一个n*n的数组然后给据规则生成就行了有的是按环数具体可看代码随想录我这个是按方向一个个生成一定要注意代码如下
var (Dir [4][2]int{{0, 1}, {1, 0}, {0, -1}, {-1, 0}}
)func generateMatrix(n int) [][]int {numss : make([][]int, n)for i : 0; i n; i {numss[i] make([]int, n)}count : 1// 从 [1][n-1]处开始x, y : 0, 0// guaiwan每循环两次就要再减一time : 1// 减过的次数subnum : 0guaiwan : n - subnumdir : 0for count n*n {numss[x][y] countcountguaiwan--if guaiwan 0 {dirif dir 4 {dir 0}time--if time 0 {time 2subnum}guaiwan n - subnum}x x Dir[dir][0]y y Dir[dir][1]}return numss
}虽然只用了一个for循环但是时间复杂度为O(n²)。
而且用了很多控制方向的变量空间复杂度较大我希望有更好的解法。 注意这种循环处理不好就会报错在设置条件时一定要细心
方法二
如果您有更好的解法别忘了博主去学习啊感谢了