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

从零开始的LeetCode刷题日记:55. 跳跃游戏

一.相关链接

题目链接:55. 跳跃游戏

二.心得体会

这一道贪心算法的题目的核心其实是要知道每一个点可以跳到哪些位置。最好想到的一个贪心思路是每次都跳最大的,但也很容易找到反例。

这道题的核心是一个概念:覆盖范围!覆盖范围指的是当前遍历过的子序列所能让我们到达的最远位置。比如第一个节点是2,那么我们的覆盖范围就是3个节点(包括第一个节点本身)。

那么每次就在覆盖范围里面进行往后遍历,并不断更新我们的最大覆盖范围。如果最后覆盖了最后一个节点,说明能达到终点,反之达不到。

三.代码
class Solution {
public:
    bool canJump(vector<int>& nums) {
        if(nums.size()==1) return true;
        int jumpStep = 0;
        int curStep = 0;
        for(int i=0;i<=jumpStep;i++) {
            curStep = i + nums[i]; //计算当前节点的覆盖范围
            if(curStep > jumpStep) jumpStep = curStep; //判断是否为新的最大覆盖区间
            if(jumpStep >= nums.size()-1) return true; //覆盖了最后一个节点就说明可达
        }
        return false;
    }
};


http://www.kler.cn/news/364798.html

相关文章:

  • 【机器学习】简单易懂的聚类算法K-Means
  • 在线课程管理系统(系统的基础功能,如教师上传课程资料、布置作业,学生提交作业和查看成绩等。)
  • 光谱指标-预测含水量-多种特征提取方式
  • eachers中的树形图在点击其中某个子节点时关闭其他同级子节点
  • 【在Win11下安装ubuntu +图形化界面】
  • tmux插件管理
  • 全面了解MindSporeLite轻量化推理工具(概念版)
  • 企业内部知识库管理系统,nlp,知识图谱,全文检索的知识库源码
  • 数据挖掘:基于电力知识图谱的客户画像构建实施方案
  • Python os模块详解
  • 开源运维软件适用性评估:多维度视角下的理性选择
  • 【python_修改PPT中字体,run.font.name只对英文生效怎么办?】
  • 告别繁琐操作!一文教你轻松做出高效报表
  • ETCD未授权访问风险基于角色认证和启用https的ca证书修复方案
  • Vue学习笔记(二、Vue.js的引入与对象创建)
  • 【MATLAB代码】FFT计算频率
  • Golang | Leetcode Golang题解之第493题翻转对
  • 使用 PyTorch 构建 LSTM 股票价格预测模型
  • 海外发稿:大舍传媒-媒体宣发Vents Magazine女性杂志展现独特魅力与价值
  • Windows里python报错:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+
  • Kafka 为什么要抛弃 Zookeeper?
  • 政安晨【零基础玩转各类开源AI项目】基于本地Ubuntu (Linux ) 系统应用Gradio-Lite:无服务器 Gradio 完全在浏览器中运行
  • 统一多模态大模型!PUMA:多粒度策略笑傲图像生成、编辑、修复、着色和条件图像生成和理解六大任务
  • 正则表达式快速入门
  • 【Orange Pi 5 Linux 5.x 内核编程】-字符设备文件与创建
  • C++中extern的作用(面试)