Merge pull request #1466 from wzqwtt/greedy03

添加(0055.跳跃游戏、0045.跳跃游戏II) Scala版本
This commit is contained in:
程序员Carl
2022-07-20 09:44:26 +08:00
committed by GitHub
2 changed files with 40 additions and 1 deletions

View File

@ -279,7 +279,31 @@ function jump(nums: number[]): number {
};
```
### Scala
```scala
object Solution {
def jump(nums: Array[Int]): Int = {
if (nums.length == 0) return 0
var result = 0 // 记录走的最大步数
var curDistance = 0 // 当前覆盖最远距离下标
var nextDistance = 0 // 下一步覆盖最远距离下标
for (i <- nums.indices) {
nextDistance = math.max(nums(i) + i, nextDistance) // 更新下一步覆盖最远距离下标
if (i == curDistance) {
if (curDistance != nums.length - 1) {
result += 1
curDistance = nextDistance
if (nextDistance >= nums.length - 1) return result
} else {
return result
}
}
}
result
}
}
```

View File

@ -193,7 +193,22 @@ function canJump(nums: number[]): boolean {
};
```
### Scala
```scala
object Solution {
def canJump(nums: Array[Int]): Boolean = {
var cover = 0
if (nums.length == 1) return true // 如果只有一个元素,那么必定到达
var i = 0
while (i <= cover) { // i表示下标当前只能够走cover步
cover = math.max(i + nums(i), cover)
if (cover >= nums.length - 1) return true // 说明可以覆盖到终点,直接返回
i += 1
}
false // 如果上面没有返回就是跳不到
}
}
```
-----------------------