JumpingGame题目描述:给定一个非负整数数组nums,你最初位于数组的第一个下标处。数组中的每个元素代表您可以在该位置跳跃的最大长度。判断是否能到达最后一个下标。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:穷举法首先,如果nums的长度为1,直接返回true;如果nums第一个元素的值为0,则无法向后跳转,直接返回false;如果不是前两种情况时,首先声明一个可变长度作为数组的最大索引位,声明一个HashSet为jumped记录跳转位置,声明一个队列toJump记录当前位置,首先添加索引bit0tojumped和toJump,然后按照如下流程遍历队列toJump:从队列中取出一个cur加入jumped;如果cur对应的数组的值为0,则跳过处理下一个队列中的值;如果cur对应的数组的值大于等于lengt-cur,则可以直接从当前位置跳转到最后一个,然后直接返回true;否则,将cur之后的nums[cur]的索引位添加到toJump中,添加前需要判断是否在jumped和toJump之间已经存在,如果存在,避免重复处理,跳过,处理next中的值队列。最后,如果队列为空,还没有跳到数组的最后一个位置,则返回false。importjava.util.HashSet;importjava.util.LinkedList;importjava.util.Queue;importjava.util.Set;publicclassLeetCode_055{publicstaticbooleancanJump(int[]nums){if(nums.length==1){返回真;}if(nums[0]==0){返回false;}intlength=nums.length-1;//确定义走到过的位置Set
