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;
    }
};
相关推荐
通信小呆呆11 小时前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
benben04411 小时前
强化学习之DQN算法族(基于gymnasium开发)
算法
何以解忧,唯有..12 小时前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
想吃火锅100513 小时前
【leetcode】88.合并两个有序数组js
算法
生成论实验室14 小时前
机器人:一个自主运动的系统
人工智能·算法·语言模型·机器人·自动驾驶·agi·安全架构
Qres82114 小时前
算法复键——树状数组
数据结构·算法
H1785350909614 小时前
SolidWorks第四部分_直接实体建模特征9_替换面原理
线性代数·算法·机器学习·3d建模·solidworks
不会就选b14 小时前
算法日常・每日刷题--<二分查找>3
算法
绿算技术15 小时前
Mooncake 与绿算ForinnBase GroundPool如何联手打破推理僵局?
科技·算法·架构