LeetCode.55 跳跃游戏

LeetCode.55 跳跃游戏

题目描述

解题思路

错误的解题思路

我一开始的思路是累加可跳范围内的最大值sum,如果最终sum >= nums.size()那么就返回true,这种思路是错误的,因为在你选择最大值的时候,你并没有对每个格子选择能跳最远的距离进行跳跃。

解题思路

  • 如果某一个作为 起跳点 的格子可以跳跃的距离是 3,那么表示后面 3 个格子都可以作为 起跳点
  • 可以对每一个能作为 起跳点 的格子都尝试跳一次,把 能跳到最远的距离 不断更新
  • 如果可以一直跳到最后,就成功了

代码

cpp 复制代码
class Solution {
public:
    bool canJump(vector<int>& nums) {
        int max_cover = 0;
        for (int i = 0; i < nums.size(); i++) {
            if (max_cover < i) return false;
            max_cover = max(nums[i] + i, max_cover);
        }
        return true;
    }
};
相关推荐
8Qi82 小时前
回文子串(Palindromic Substrings)—— 题解
算法·leetcode·职场和发展·动态规划
小宋加油啊6 小时前
机械臂抓取物体 PVN3D算法调研学习
学习·算法·3d
lqqjuly6 小时前
前沿算法深度解析(一)
算法
小欣加油7 小时前
leetcode1926 迷宫中离入口最近的出口
数据结构·c++·算法·leetcode·职场和发展
happymaker06269 小时前
LeetCodeHot100——42.接雨水
算法
阿正的梦工坊10 小时前
【Rust】07-错误处理:Option、Result 与 ? 运算符
开发语言·算法·rust
八解毒剂11 小时前
数据结构-平衡二叉树——对二叉搜索树的优化
数据结构·c++·算法
运行时记录12 小时前
别再手动写提示词了 — SkillOpt 让技能文档自己进化
算法
啦啦啦啦啦zzzz12 小时前
算法总结(二分查找、双指针)
c++·算法