题意:

image.png

解题思路:

  1. 思路:
  2. 1. 如果最大跳跃距离都小于下标k的话,证明永远到不了终点

PHP代码实现:

  1. class Solution {
  2. /**
  3. * @param Integer[] $nums
  4. * @return Boolean
  5. */
  6. function canJump($nums) {
  7. if (empty($nums) || count($nums) == 0) return false;
  8. $n = count($nums);
  9. $max = 0;
  10. foreach ($nums as $k => $num) {
  11. if ($max < $k) return false;
  12. $max = max($max, $k + $num);
  13. }
  14. return true;
  15. }
  16. }

GO代码实现:

  1. func canJump(nums []int) bool {
  2. //能达到的最大索引
  3. maxIdx := 0
  4. for i, v := range nums {
  5. if maxIdx < i {
  6. return false
  7. }
  8. maxIdx = max(maxIdx, i + v)
  9. }
  10. return true
  11. }
  12. func max(x,y int) int{
  13. if x > y { return x }
  14. return y
  15. }