mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
添加 0059.螺旋矩阵II.md Scala版本
This commit is contained in:
@ -564,6 +564,57 @@ int** generateMatrix(int n, int* returnSize, int** returnColumnSizes){
|
|||||||
return ans;
|
return ans;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
Scala:
|
||||||
|
```scala
|
||||||
|
object Solution {
|
||||||
|
def generateMatrix(n: Int): Array[Array[Int]] = {
|
||||||
|
var res = Array.ofDim[Int](n, n) // 定义一个n*n的二维矩阵
|
||||||
|
var num = 1 // 标志当前到了哪个数字
|
||||||
|
var i = 0 // 横坐标
|
||||||
|
var j = 0 // 竖坐标
|
||||||
|
|
||||||
|
while (num <= n * n) {
|
||||||
|
// 向右:当j不越界,并且下一个要填的数字是空白时
|
||||||
|
while (j < n && res(i)(j) == 0) {
|
||||||
|
res(i)(j) = num // 当前坐标等于num
|
||||||
|
num += 1 // num++
|
||||||
|
j += 1 // 竖坐标+1
|
||||||
|
}
|
||||||
|
i += 1 // 下移一行
|
||||||
|
j -= 1 // 左移一列
|
||||||
|
|
||||||
|
// 剩下的都同上
|
||||||
|
|
||||||
|
// 向下
|
||||||
|
while (i < n && res(i)(j) == 0) {
|
||||||
|
res(i)(j) = num
|
||||||
|
num += 1
|
||||||
|
i += 1
|
||||||
|
}
|
||||||
|
i -= 1
|
||||||
|
j -= 1
|
||||||
|
|
||||||
|
// 向左
|
||||||
|
while (j >= 0 && res(i)(j) == 0) {
|
||||||
|
res(i)(j) = num
|
||||||
|
num += 1
|
||||||
|
j -= 1
|
||||||
|
}
|
||||||
|
i -= 1
|
||||||
|
j += 1
|
||||||
|
|
||||||
|
// 向上
|
||||||
|
while (i >= 0 && res(i)(j) == 0) {
|
||||||
|
res(i)(j) = num
|
||||||
|
num += 1
|
||||||
|
i -= 1
|
||||||
|
}
|
||||||
|
i += 1
|
||||||
|
j += 1
|
||||||
|
}
|
||||||
|
res
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
Reference in New Issue
Block a user