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,最后看看我们能不能到达最后一个位置