给定一个非负整数数组nums,假定最开始处于下标为0的位置,数组里面的每个元素代表下一跳能够跳跃的最大长度。如果能够跳到数组最后一个位置,则返回true,否则返回false。
数据范围:
[2,1,3,3,0,0,100]
true
首先位于nums[0]=2,然后可以跳2步,到nums[2]=3的位置,再跳到nums[3]=3的位置,再直接跳到nums[6]=100,可以跳到最后,返回true
[2,1,3,2,0,0,100]
false
无论怎么样,都跳不到nums[6]=100的位置
package main
import _"fmt"
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return bool布尔型
*/
func canJump( nums []int ) bool {
n:=len(nums)
end:=0
for i:=0;i<n;i++{
if end<i{
return false
}
end=max(end,i+nums[i])
}
return true
}
func max(a,b int)int{
if a>b{
return a
}
return b
}