题目

 题目链接:
 https://www.nowcoder.com/practice/23407eccb76447038d7c0f568370c1bd
思路
答案说的merge区间就是每个A[i]的地方能跳到的最远坐标是A[i] + [i],
有一个maxReach,遍历一遍A[i], 不断刷新MaxReach, 如果某个i 位置比maxReach要大,
则说明这点跳不过去, return false,否则的话这点可以跳过去,
只要能遍历完就可以return true了
 
参考答案Java
import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型一维数组
     * @return bool布尔型
     */
    public boolean canJump (int[] nums) {
        //DP
        /*
         答案说的merge区间就是每个A[i]的地方能跳到的最远坐标是A[i] + [i],
         有一个maxReach,遍历一遍A[i], 不断刷新MaxReach, 如果某个i 位置比maxReach要大,
         则说明这点跳不过去, return false,否则的话这点可以跳过去,
         只要能遍历完就可以return true了
         */
        int maxReach = nums[0];
        for (int i = 1; i < nums.length ; i++) {
            if (i <= maxReach) {
                maxReach = Math.max(maxReach, nums[i] + i);
            } else {
                return false;
            }
        }
        return true;
    }
}
 
参考答案Go
package main
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param nums int整型一维数组
 * @return bool布尔型
 */
func canJump(nums []int) bool {
	//DP
	/*
	   答案说的merge区间就是每个A[i]的地方能跳到的最远坐标是A[i] + [i],
	   有一个maxReach,遍历一遍A[i], 不断刷新MaxReach, 如果某个i 位置比maxReach要大,
	   则说明这点跳不过去, return false,否则的话这点可以跳过去,
	   只要能遍历完就可以return true了
	*/
	maxReach := nums[0]
	for i := 1; i < len(nums); i++ {
		if i <= maxReach {
			cur := nums[i] + i
			if cur >= maxReach {
				maxReach = cur
			}
		} else {
			return false
		}
	}
	return true
}
 
参考答案PHP
<?php
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param nums int整型一维数组 
 * @return bool布尔型
 */
function canJump( $nums )
{
   
    //DP
    /*
       答案说的merge区间就是每个A[i]的地方能跳到的最远坐标是A[i] + [i],
       有一个maxReach,遍历一遍A[i], 不断刷新MaxReach, 如果某个i 位置比maxReach要大,
       则说明这点跳不过去, return false,否则的话这点可以跳过去,
       只要能遍历完就可以return true了
    */
    $maxReach = $nums[0];
    for($i=1;$i<count($nums);$i++){
        if($i<=$maxReach){
            $cur = $nums[$i]+$i;
            if($cur>$maxReach){
                $maxReach = $cur;
            }
        }else{
            return false;
        }
    }
    return true;
}
                

















