当前位置: 首页 > 后端技术 > Java

Leetcode跳跃游戏

时间:2023-04-02 09:56:18 Java

题目描述(中等难度)给定一个非负整数数组nums,你最初位于数组的第一个索引处。数组中的每个元素代表您可以在该位置跳跃的最大长度。判断是否能到达最后一个下标。示例1:输入:nums=[2,3,1,1,4]输出:true解释:可以先跳1步,从下标0跳到下标1,然后从下标1跳3步到最后一个下标.示例2:输入:nums=[3,2,1,0,4]输出:false解释:无论如何,总会到达下标3的位置。但是这个下标的最大跳转长度是0,所以永远不可能到达最后一个下标。解题思路能否到达最后一个下标需要判断数组是否为零。如果没有零,则必须到达最后一个下标。如果有零,检查零前面的位置是否可以跳过零,如果没有,则返回false。publicbooleancanJump(int[]nums){for(inti=0;i=0){if(nums[j]+j>i){canSkipZero=true;休息;j--;}如果(!canSkipZero){返回假;}}}返回真;如果当前阶数为零,则不需要每次都往前走,只需要记录下能跳得最远的最大值即可。之前可以跳转的最大值一定是最远可以跳转的位置publicbooleancanJump(int[]nums){//记录最远可以跳转的下标intmax=0;for(inti=0;i