编程菜鸟LeetCode打卡--跳跃游戏

Michelle ·
更新时间:2024-11-10
· 589 次阅读

题目如下:
在这里插入图片描述
解题思路:

由题目不难得出得出只有当数组中含有 0 的时候才有可能到达不了最后一个位置,所以当数组不含有0时,最后位置时一定可以到达的。 所以只用遍历数组,当元素为0时,判断前面的元素中是否包含可以到达这个0后面位置的元素;即 nums[i-j]>j(j为2个元素的距离), 如果没有的话就返回false,否则继续遍历,如果直至遍历结束所有元素0都可以越过就返回true 注意:*当0为数组最后一个元素时,如果前面位置都可以到达,那么最后位置也是可以到达的。

代码如下:

class Solution { public boolean canJump(int[] nums) { boolean is=false; int l=nums.length; //判断数组是否为空如果空返回false if (nums.length==0){ return false; } //遍历数组 for (int i=0;i<l;i++){ //当元素为0时候 if (nums[i]==0){ //判断是否为最后一个元素 if (i==l-1){ return true; }else { //遍历0前面的元素是否含可以越过0的元素 for (int j=1;jj; System.out.println(is); //如果有,结束这次遍历,继续寻找下一个0 if (is){ break; } } //如果遍历结束没有找到,返回false if (!is){ return false; } } } } //如果遍历正常结束说明最后一个位置可以到达,返回true return true; } }
作者:₯㎕๓安笙



菜鸟 od

需要 登录 后方可回复, 如果你还没有账号请 注册新账号