leetcode 55. 跳跃游戏
创始人
2024-06-01 11:52:52

给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标。

示例 1:

输入:nums = [2,3,1,1,4]
输出:true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。

示例 2:

输入:nums = [3,2,1,0,4]
输出:false
解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。

提示:

1 <= nums.length <= 3 * 10^{4}
0 <= nums[i] <= 10^{5}

思路:

    因为数组为非负整数,所以最小的跳跃长度为0

    只要数组中不含0,那么一定能跳到最后一个下标

    若是含0就要判断能不能跳过0这个下标,若能则能跳到最后一个下标

    若不能则不能到达最后一个下标

bool canJump(int* nums, int numsSize){int left = 0, right = 0;if(numsSize == 1)   //判断数组长度为1,不用跳动就到了结束return true;for( ; right < numsSize; right++){  //right用来找0,即0的下标left = 0; //从开头能否跳到结尾if(0 == nums[right]){   //找0for( ; left < right; left++){ if(right - left < nums[left]){ //存在能跨过0的位置break;    }else if((right - left == nums[left]) && right == numsSize - 1){ //0在末尾的特殊情况return true;}}if(left == right)   //有一个0跳不过去return false;}}return true;
}

相关内容

热门资讯

这个邻国,请继续你疯狂的表演 国与国之间,最大的危险不是对抗,而是误判——把另一方的克制当成了怯懦。有一个邻国,感觉正在进行疯狂的...
信息通信业1集体3个人获第四届...   本报讯(记者 晓镜)今年5月30日是第十个全国科技工作者日。当天上午,2026年全国科技工作者日...
完成海南炼化首单二乙二醇出口业... (来源:海运经纪)近日,化销华南加强与化销国贸工作协同,充分发挥海南自由贸易港区位优势,深入拓展海外...
“被迫吸了二手烟!”贵州一学校... 转自:扬子晚报近日,贵州新东方烹饪技师学院多名学生在社交平台发帖称,该校为配合5月31日的“世界无烟...
阿布扎比国家石油公司贸易主管指... 格隆汇6月3日|阿布扎比国家石油公司(ADNOC)销售与贸易执行副总裁Philippe Khoury...