题意:
解题思路:
思路:
1. 如果最大跳跃距离都小于下标k的话,证明永远到不了终点
PHP代码实现:
class Solution {
/**
* @param Integer[] $nums
* @return Boolean
*/
function canJump($nums) {
if (empty($nums) || count($nums) == 0) return false;
$n = count($nums);
$max = 0;
foreach ($nums as $k => $num) {
if ($max < $k) return false;
$max = max($max, $k + $num);
}
return true;
}
}
GO代码实现:
func canJump(nums []int) bool {
//能达到的最大索引
maxIdx := 0
for i, v := range nums {
if maxIdx < i {
return false
}
maxIdx = max(maxIdx, i + v)
}
return true
}
func max(x,y int) int{
if x > y { return x }
return y
}