Golang:
思路:如果你已经做过了leetcode_54,那相比你对于螺旋已经有了一定的了解。这题的思路很简单,先初始化一个二维矩阵,再赋值。这里和leetcode_54不一样的是,建立的矩阵是n*n
矩阵,所以只需要一直螺旋下去就可以了。那么螺旋赋值到什么时候结束呢?答案是当赋的值到达n*n后,就可以结束了,因为总共就赋值那么多次,也不用再去考虑溢出。
代码如下:
func generateMatrix(n int) [][]int {
res:=make([][]int,n)
for i:=0; i<n; i++ {
res[i]=make([]int,n)
}
//x表示从起始点(x,x)
//t表示第几行结束 (t,t)
x,t,last:=0,n,n*n
temp:=1
for temp<=last{
for s:=x;s<t;s++{
res[x][s]=temp
temp++
}
for s:=x+1;s<t;s++{
res[s][t-1]=temp
temp++
}
for s:=t-2;s>=x;s--{
res[t-1][s]=temp
temp++
}
for s:=t-2;s>x;s-- {
res[s][x]=temp
temp++
}
x++
t--
}
return res
}
有疑问加站长微信联系(非本文作者)