Jump Game
LeetCode 55 · View on LeetCode
Track the farthest reachable index as you scan left to right. If you ever land on an index beyond your reach, return false.
package main
import "fmt"
func canJump(nums []int) bool {
reach := 0
for i := 0; i < len(nums); i++ {
if i > reach {
return false
}
if i+nums[i] > reach {
reach = i + nums[i]
}
}
return true
}
func main() {
fmt.Println(canJump([]int{2, 3, 1, 1, 4})) // true
fmt.Println(canJump([]int{3, 2, 1, 0, 4})) // false
fmt.Println(canJump([]int{0})) // true
}