59. 螺旋矩阵 II
给你一个正整数 n
,生成一个包含 1
到 n2
所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
。 == 给数字,自己造一个矩阵 —> 原来是给矩阵,求数组
示例 1:
输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]
//时间Omn,空间Omn
func generateMatrix(n int) [][]int {
matrix := make([][]int, n)
for i := range matrix {
matrix[i] = make([]int, n)
}
num := 1 //多一段构造 matrix
top, bottom := 0, n -1
left, right := 0, n -1
for num <= n*n {
for i := left; i <= right; i++ {
matrix[top][i] = num
num++ //多一段 num++
}
top++
for i := top; i <= bottom; i++ {
matrix[i][right] = num
num++
}
right--
for i := right; i >= left; i-- { //注意:这里i--,也变成bot相反
matrix[bottom][i] = num
num++
}
bottom--
for i := bottom; i >= top; i-- {
matrix[i][left] = num
num++
}
left++
}
return matrix
}