import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型一维数组
     * @return bool布尔型
     */
     public boolean can_jump (int[] rivers) {
        // write code here
        boolean[] flag = new boolean[rivers.length];
        flag[0] = true;
        for(int i=0;i<rivers.length-1;i++){
            if(!flag[i]){
                continue;
            }
            int index = 1;
            while (i+index<rivers.length && index<=rivers[i]){
                flag[i+index] = true;
                index++;
            }

        }
        return flag[flag.length-1];

    }
}

本题主要考察的知识点是贪心算法,所用编程语言是java。

关于这题nums[i] 表示处在第 i 个障碍时可以的最大跳跃长度。如果可以跳到相应下标位置,即[i,i+nums[i]]的范围内都可以跳到,我们依次遍历每个位置,将[i,i+nums[i]]的位置都可以设置为true,最后看看我们能不能到达最后一个位置