当前位置: 首页 > news >正文

leetcode 55. 跳跃游戏

给定一个非负整数数组 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;
}

http://www.lryc.cn/news/37918.html

相关文章:

  • Linux:文件流指针 与 文件描述符
  • 基于FPGA实现正弦插值算法
  • JavaWeb_会话技术
  • Reactor响应式流的核心机制——背压机制
  • [数据结构]栈的深入学习-java实现
  • 网络编程基础
  • 华为OD机试题 - 数列还原(JavaScript)| 机考必刷
  • 10-Oracle存储过程(创建,修改,使用及管理)
  • 创建线程的三种方法
  • 第一章---Pytorch快速入门---第三节---pytorch中的数据操作和预处理
  • 【代码随想录训练营】【Day38】第九章|动态规划|理论基础|509. 斐波那契数|70. 爬楼梯|746. 使用最小花费爬楼梯
  • 华为OD机试题 - 快递货车(JavaScript)| 机考必刷
  • 前端——7.图像标签和路径
  • java -- stream流
  • 【Spring6】| Bean的四种获取方式(实例化)
  • 01: 新手学SpringCloud前需知道的5点
  • ubuntu apt安装arm交叉编译工具
  • 阿里云一面经历
  • Java Stream中 用List集合统计 求和 最大值 最小值 平均值
  • 【Linux】多线程---线程控制
  • 秒杀高并发解决方案
  • 【每日一题】蓝桥杯加练 | Day07
  • 条件语句(分支语句)——“Python”
  • 论文投稿指南——中文核心期刊推荐(国家财政)
  • 面向数据安全共享的联邦学习研究综述
  • Redis经典五种数据类型底层实现原理解析
  • Jackson 返回前端的 Response结果字段大小问题
  • 每天五分钟机器学习:你理解贝叶斯公式吗?
  • C++的入门
  • 数据的存储