mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
Merge pull request #1466 from wzqwtt/greedy03
添加(0055.跳跃游戏、0045.跳跃游戏II) Scala版本
This commit is contained in:
@ -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
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
@ -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 // 如果上面没有返回就是跳不到
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
-----------------------
|
||||
|
Reference in New Issue
Block a user