| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | 
							- package main
 
- func jumpSlow(nums []int) (steps int) { // TLE?
 
- 	n := len(nums)
 
- 	if n == 0 {
 
- 		return
 
- 	}
 
- 	dist := make([]int, n)
 
- 	for i := range nums {
 
- 		for j := 1; j <= nums[i] && i+j < n; j++ {
 
- 			if dist[i+j] == 0 || dist[i] < dist[i+j] {
 
- 				dist[i+j] = dist[i] + 1
 
- 			}
 
- 		}
 
- 	}
 
- 	return dist[n-1]
 
- }
 
- func jump(nums []int) (steps int) {
 
- 	n := len(nums)
 
- 	if n <= 1 {
 
- 		return
 
- 	}
 
- 	stop, nextStop := nums[0], nums[0]
 
- 	for i := range nums {
 
- 		if nextStop < i+nums[i] {
 
- 			nextStop = i + nums[i]
 
- 		}
 
- 		if i == stop || i == n-1 {
 
- 			stop = nextStop
 
- 			steps++
 
- 		}
 
- 	}
 
- 	return
 
- }
 
- // func main() {
 
- // 	n := []int{2, 3, 1, 1, 4}
 
- // 	println(jump(n))
 
- // 	n = []int{}
 
- // 	println(jump(n))
 
- // 	n = []int{2, 1}
 
- // 	println(jump(n))
 
- // 	n = []int{0}
 
- // 	println(jump(n))
 
- // }
 
 
  |