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

【leetcode hot 100 55】跳跃游戏

解法一:(递归)第i个位置要跳到第j个位置,得nums[i]>=j-i。因此倒叙,判断能跳到n-1的位置为location1->能跳到location1的位置为location2-> … ->能跳到0则true。

class Solution {
    public boolean canJump(int[] nums) {
        // 要跳到第j个位置,nums[i]>=j-i(注意要-i)
        int n = nums.length;
        // 要跳到n
        return canJump_helper(nums, n-1);
    }

    public boolean canJump_helper(int[] nums, int location){
        // location是现在在的位置
        if(location==0){
            return true;
        }
        for(int i=0; i<location; i++){
            if(nums[i]>=location-i){
                // 能跳
                return canJump_helper(nums, i);
            }
        }
        return false;
    }
}

注意:

  • 要跳到第j个位置,nums[i]>=j-i,这里不能是i,得是i-1

解法二:(贪心算法)我们依次遍历数组中的每一个位置,并实时维护最远可以到达的位置。在遍历的过程中,如果 最远可以到达的位置 大于等于数组中的最后一个位置,那就说明最后一个位置可达,我们就可以直接返回 True 作为答案。反之,如果在遍历结束后,最后一个位置仍然不可达,我们就返回 False 作为答案。

贪心算法(Greedy Algorithm)是一种在求解最优化问题时常用的算法策略。其核心思想是‌在每一步选择中都采取当前状态下最优的选择,以期望最终得到全局最优解‌。

相关文章:

  • 深入探索 libarchive
  • 【机器人-开发工具】ROS 2(3)常见工具软件安装(2025持续更新......)
  • stress 和 stress-ng(增强版) -压力测试工具
  • linux挂载磁盘
  • Go 语言标准库中database模块详细功能介绍与示例
  • Ingredient-oriented Multi-Degradation Learning for Image Restoration论文阅读
  • git:远程仓库拉取到本地,fork到本地,修改后再上传
  • 【每日论文】Qwen2.5-Omni Technical Report
  • 前端性能优化思路_场景题
  • C#Lambda表达式与委托关系
  • 平台清洗行动:AI浏览器用户生存率高出传统方案17倍
  • Gradle实战指南:从入门到进阶,与Maven的深度对比
  • -PHP 应用SQL 二次注入堆叠执行DNS 带外功能点黑白盒条件
  • 人工智能算法、模型、框架
  • 剑指Offer35- - 链表
  • 【剪辑_BGM 记录】
  • matplotlib学习
  • MySQL INSERT 语句:当记录不存在时插入
  • Centos7 安装 TDengine
  • springMVC中转发和重定向的简介及写法
  • 苏丹港持续遭无人机袭击,外交部:呼吁各方保护民用设施和平民安全
  • 上海发文加强直播经济技能人才培养:三年新培养持证直播技能人才5万名
  • 三人在共享单车上印小广告被拘,北京警方专项打击非法小广告
  • 纽约市长称墨海军帆船撞桥已致2人死亡,撞桥前船只疑似失去动力
  • 美国务卿与以色列总理通话,讨论加沙局势
  • 广西隆林突发山洪,致3人遇难1人失联