博客
关于我
LeetCode 45/55. 跳跃游戏I/II
阅读量:586 次
发布时间:2019-03-11

本文共 836 字,大约阅读时间需要 2 分钟。

原题目

在跳跃游戏问题中,我们需要判断给定数列中是否可以从起点到达终点。解决这个问题的核心在于理解当前位置以及所能走动的最大范围。

完整代码

#include 
using namespace std;class Solution {public: bool canJump(vector
nums) { int max_index = 0; for (int i = 0; i < nums.size(); ++i) { if (max_index >= i) { break; } max_index = min(max_index + nums[i], nums.size() - 1); } return max_index >= nums.size() - 1; }};

解题思路

这道题可以通过贪心算法来解决。如果我们能够一直保持当前位置不超过最大能够跳跃的位置,那么就能到达终点。

解题步骤

  • 初始化最大索引:从起始位置开始,假设最大能走到的索引位置为 max_index,初始值为当前位置。
  • 遍历每一步:在每一步中,更新当前能走到的最远位置,如果当前能够跳跃到更远的地方,那么更新 max_index
  • 终止条件:如果遍历过程中,当前索引已经超过了 max_index,说明不能到达终点。
  • 返回结果:如果能够到达终点,返回 true,否则返回 false
  • 代码解析

  • 初始化变量max_index 用于记录当前能到达的最远索引位置。
  • 遍历数列:从第一个元素开始遍历,每次检查当前的最大索引是否超过当前遍历索引,如果没有,则更新最大索引。
  • 跳跃终止:当遍历到最后一个元素后,检查是否能达到终点。
  • 通过这种方法,我们能够高效地判断是否能完成跳跃任务。

    转载地址:http://wfhtz.baihongyu.com/

    你可能感兴趣的文章
    手动造轮子——基于.NetCore的RPC框架DotNetCoreRpc
    查看>>
    Python IO编程
    查看>>
    CSS入门总结
    查看>>
    使用 TortoiseGit 时,报 Access denied 错误
    查看>>
    基于 HTML5 WebGL 的污水处理厂泵站自控系统
    查看>>
    [系列] Go gRPC 调试工具
    查看>>
    django-表单之模型表单渲染(六)
    查看>>
    c++之程序流程控制
    查看>>
    yarn出现“There are no scenarios ; must have at least one"
    查看>>
    spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
    查看>>
    httprunner学习23-加解密
    查看>>
    有道云笔记 同步到我的博客园
    查看>>
    李笑来必读书籍整理
    查看>>
    http头部 Expect
    查看>>
    Hadoop(十六)之使用Combiner优化MapReduce
    查看>>
    《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
    查看>>
    CoreCLR源码探索(八) JIT的工作原理(详解篇)
    查看>>
    IOS开发Swift笔记16-错误处理
    查看>>
    flume使用中的一些常见错误解决办法 (地址已经使用)
    查看>>
    andriod 开发错误记录
    查看>>