mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 12:15:58 +08:00
Merge pull request #1308 from wzqwtt/patch02
添加(0059.螺旋矩阵II、链表理论基础、0203.移除链表元素)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>
|
||||||
|
@ -478,6 +478,36 @@ impl Solution {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
Scala:
|
||||||
|
```scala
|
||||||
|
/**
|
||||||
|
* Definition for singly-linked list.
|
||||||
|
* class ListNode(_x: Int = 0, _next: ListNode = null) {
|
||||||
|
* var next: ListNode = _next
|
||||||
|
* var x: Int = _x
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
object Solution {
|
||||||
|
def removeElements(head: ListNode, `val`: Int): ListNode = {
|
||||||
|
if (head == null) return head
|
||||||
|
var dummy = new ListNode(-1, head) // 定义虚拟头节点
|
||||||
|
var cur = head // cur 表示当前节点
|
||||||
|
var pre = dummy // pre 表示cur前一个节点
|
||||||
|
while (cur != null) {
|
||||||
|
if (cur.x == `val`) {
|
||||||
|
// 相等,就删除那么cur的前一个节点pre执行cur的下一个
|
||||||
|
pre.next = cur.next
|
||||||
|
} else {
|
||||||
|
// 不相等,pre就等于当前cur节点
|
||||||
|
pre = cur
|
||||||
|
}
|
||||||
|
// 向下迭代
|
||||||
|
cur = cur.next
|
||||||
|
}
|
||||||
|
// 最终返回dummy的下一个,就是链表的头
|
||||||
|
dummy.next
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
-----------------------
|
-----------------------
|
||||||
<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>
|
||||||
|
@ -210,6 +210,13 @@ type ListNode struct {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Scala:
|
||||||
|
```scala
|
||||||
|
class ListNode(_x: Int = 0, _next: ListNode = null) {
|
||||||
|
var next: ListNode = _next
|
||||||
|
var x: Int = _x
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
|
Reference in New Issue
Block a user