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

力扣-贪心-45 跳跃游戏

思路

利用上一题思路先判断每一个点是否可以到达终点,构建bool数组,然后从0开始更新当前可以到达的最大值,更新这个最大值,知道这个最大值大于下标范围即可,每更新一次相当于跳跃一次,需要注意的是更新条件

  1. 从当前点可以跳到的最大范围往前剋是遍历
  2. 该点满足可以跳到重点
  3. 当前的比记录跳的范围更远
  4. 记录的还没跳到终点(因为当前记录已经可以跳到重点,就不需要更新了,直接跳到终点就可以)

代码

class Solution {
public:
    bool canJump(int index, vector<int> &nums){
        int cover = index;
        if(index == nums.size() - 1) return true;
        for(int i = index; i <= cover;i++){
            cover = max(cover, i + nums[i]);
            if(cover >= nums.size() - 1) return true;
        }
        return false;
    }

    int jump(vector<int>& nums) {
        vector<bool> isArriveEnd(nums.size(), false);
        for(int i = 0; i < nums.size(); i++){
            isArriveEnd[i] = canJump(i, nums);
        }

        int res = 0, cur = 0;
        for (cur = 0; cur < nums.size() - 1;) {
            int cover = cur + nums[cur];
            int curMaxAndArrive = cover;
            int length = nums.size() - 1;
            for (int j = cover; j > cur && j < nums.size(); j--) {
                if (isArriveEnd[j] && j + nums[j] > curMaxAndArrive +  nums[curMaxAndArrive]
                        && curMaxAndArrive +  nums[curMaxAndArrive] < length) {
                    curMaxAndArrive = j;
                }
            }
            res++;
            cur = curMaxAndArrive;
        }
        return res;
    }
};

相关文章:

  • 【分布式数据一致性算法】Gossip协议详解
  • 【Rust中级教程】2.7. API设计原则之灵活性(flexible) Pt.3:借用 vs. 拥有、`Cow`类型、可失败和阻塞的析构函数及解决办法
  • 使用ESP-IDF来驱动INMP441全向麦克风
  • Python游戏编程之赛车游戏2
  • 【数据结构】(12) 反射、枚举、lambda 表达式
  • 苍穹外卖中的模块总结
  • Locale+Jackson导致Controller接口StackOverflowError异常解决
  • vue:vite 代理服务器 proxy 配置
  • TSMaster【第八篇:首战成名——第一个仿真工程实录(完整3000字版)】
  • Python深度学习:遥感影像目标识别中的数据标注技巧
  • 数据库增删查改sql语句
  • at32f103a+rtt+AT组件+esp01s 模块使用
  • Neo4j使用neo4j-admin导入csv数据方法
  • [特殊字符] Elasticsearch 双剑合璧:HTTP API 与 Java API 实战整合指南
  • 第七章 情绪力——情绪是多角度看问题的智慧
  • 数据库课设---酒店管理系统(MySQL、VBNet)
  • Windows平台使用cmake 链接动态库
  • 探索分析并发控制的关键作用 — 确保系统稳定与高效的技术导论
  • 前端VUE3框架的快速搭建
  • 【僵尸进程】
  • 厚重与潮流交织,淮安展现“运河之都”全新城市想象
  • 15世纪以来中国文化如何向欧洲传播?《东学西传文献集成初编》发布
  • 西藏阿里地区日土县连发两次地震,分别为4.8级和3.8级
  • 这座“蚌埠住了”的城市不仅会接流量,也在努力成为文旅实力派
  • 对谈|李钧鹏、周忆粟:安德鲁·阿伯特过程社会学的魅力
  • 外交部:对伊朗拉贾伊港口爆炸事件遇难者表示深切哀悼