创建数组 f[i]
表示青蛙是否能够跳到石头 i
,初始时 f[0] = true
,依次计算 f[i]
。
青蛙能否跳到石头 i
,需要找到从石头 0
到石头 i-1
中是否存在石头 j
,青蛙能跳到石头 j
并且能从石头 j
跳到石头 i
。
function frog(arr){
const length = arr.length
if(!arr || length === 0){
return false
}
let res = new Array(length).fill(false)
res[0] = true
for(let i = 1; i < length; i++){
for(let j = 0; j < i; j++){
if(res[j] && j + arr[j] >= i){
res[i] = true
break
}
}
}
return arr[length - 1]
}