Golang:
思路:DP,但是这题我最终实现的效率很低,所以有待优化
代码如下:
func jump(nums []int) int {
if len(nums)<=1 {
return 0
}
arr:=make([]int,len(nums))
arr[0]=0
for i:=0;i<len(nums)-1;i++{
for j:=i+1;j<=i+nums[i];j++{
if j<len(arr)&&(arr[j]==0||min(arr[j],arr[i]+1)==arr[i]+1){
arr[j]=arr[i]+1
}
}
}
return arr[len(arr)-1]
}
func min(x int, y int) int {
if x > y {
return y
} else {
return x
}
}
有疑问加站长微信联系(非本文作者)