LeetCode刷题——55. 跳跃游戏(HOT100)

这篇具有很好参考价值的文章主要介绍了LeetCode刷题——55. 跳跃游戏(HOT100)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

✊✊✊🌈大家好!本篇文章将较详细介绍贪心相关的题目55. 跳跃游戏,提供两种解法。代码语言为:C++代码😇。


55. 跳跃游戏

🔒1、题目:

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false
🌲 示例 1🌲:

输入:nums = [2,3,1,1,4]
输出:true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。

🌲 示例 2🌲:

输入:nums = [3,2,1,0,4]
输出:false
解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。
 

❗️ 提示 ❗️ :

  • 1 <= nums.length <= 104
  • 0 <= nums[i] <= 105

来源:力扣(LeetCode)👈

☀️2、解法一:

对每个能作为起跳点的格子都尝试一下,不断更新能跳到的最远距离
1.循环遍历所有格子,途中判断当前距离是否大于能跳到的最远距离,若大于,则返回false
2.遍历结束,则说明能一直跳到最后,返回true

复杂度分析
⏳时间复杂度 O(N) :一次遍历nums数组。
🏠空间复杂度 O(1)

🔑3、代码:

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

☀️4、解法二:

1.i每次移动只能在能跳到的最远距离 cover 内移动,每移动一次,更新一下cover最大值, 让i继续移动下去。
2.如果cover大于等于终点,返回true
复杂度分析
⏳时间复杂度 O(N) :一次遍历nums数组。
🏠空间复杂度 O(1)文章来源地址https://www.toymoban.com/news/detail-809640.html

🔑5、代码:

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

到了这里,关于LeetCode刷题——55. 跳跃游戏(HOT100)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 算法leetcode|55. 跳跃游戏(rust重拳出击)

    给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 1 = nums.length = 3 * 10 4 0 = nums[i] = 10 5 面对这道算法题目,二当家的再次陷入了沉思。 可能想到要暴力尝试或者是双循环

    2024年02月08日
    浏览(107)
  • 【算法】动态规划 ⑦ ( LeetCode 55. 跳跃游戏 | 算法分析 | 代码示例 )

    LeetCode 55. 跳跃游戏 : https://leetcode.cn/problems/jump-game/ 给定一个 非负整数数组 nums ,你最初位于数组的 第一个下标 0 位置 。 数组中的每个元素 代表你在该位置可以 跳跃的最大长度。 判断你 是否能够到达最后一个下标。 给定一个一维数组 , 数组元素不能有负数 , 如 : {2, 2,

    2024年02月10日
    浏览(39)
  • Java算法_ 杨辉三角(LeetCode_Hot100)

    题目描述:题目描述:给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 获得更多?算法思路:代码文档,算法解析的私得。 运行效果 完整代码

    2024年02月13日
    浏览(50)
  • Java算法_ 验证二叉搜索树(LeetCode_Hot100)

    题目描述: 给你一个二叉树的根节点 ,判断其是否是一个有效的二叉搜索树。root 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 获得更多?算法思路:代码文

    2024年02月12日
    浏览(40)
  • 【LeetCode】HOT 100(2)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:5. 最长回文子串 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过过

    2024年02月09日
    浏览(38)
  • 【LeetCode】HOT 100(16)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:124. 二叉树中的最大路径和 - 力扣(Leetcode) 题目的接口: 解题思路:

    2024年02月12日
    浏览(34)
  • 【LeetCode】HOT 100(1)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:2. 两数相加 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过过过过

    2024年02月08日
    浏览(40)
  • 【LeetCode】HOT 100(21)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:560. 和为 K 的子数组 - 力扣(Leetcode) 题目的接口: 解题思路: 代码:

    2024年02月12日
    浏览(45)
  • leetcode hot 100

    二叉树的遍历不仅可以用递归来做,也可以用迭代来做。二叉树的递归底层是采用栈来进行的,所以我们迭代就要采用栈来做。 我们知道,栈的原则是先进后出,以前序为例,顺序是中左右,那么,以根节点开始,如果不为空,我们先把根节点压入栈,然后弹出,然后再把右

    2024年01月25日
    浏览(50)
  • 【LeetCode】HOT 100(15)

    精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍: 题目:98. 验证二叉搜索树 - 力扣(Leetcode) 题目的接口: 解题思路: 代码:

    2024年02月11日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包