lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1846 随笔 :: 0 文章 :: 109 评论 :: 288万 阅读

1. 题目

 读题

https://leetcode.cn/problems/jump-game/

考查点

这道题主要考查的是贪心算法的应用,

  • 即在每一步选择最优的局部解,从而达到全局最优的目的。
  • 贪心算法通常用于解决一些最优化问题,如最小生成树、单源最短路径、任务调度等。
  • 2. 解法

思路

一个可能的解决方案是使用贪心算法,即每次选择能跳到最远的位置。具体步骤如下:

  • 初始化一个变量maxReach,表示当前能跳到的最远位置,初始值为0。
  • 遍历数组中的每个元素,对于每个元素i,更新maxReach为max(maxReach, i + nums[i]),即当前位置加上能跳的长度和之前的最远位置中的较大值。
  • 如果maxReach >= nums.length - 1,说明能够到达最后一个下标,返回true。
  • 如果i > maxReach,说明当前位置已经超过了能跳到的最远位置,无法继续前进,返回false。

具体实现

1
2
3
4
5
6
7
8
9
10
11
class Solution {
    public boolean canJump(int[] nums) {
        int maxReach = 0; //当前能跳到的最远位置
        for (int i = 0; i < nums.length; i++) {
            if (maxReach >= nums.length - 1) return true; //能够到达最后一个下标
            if (i > maxReach) return false; //当前位置超过了能跳到的最远位置
            maxReach = Math.max(maxReach, i + nums[i]); //更新最远位置
        }
        return false;
    }
}

  

3. 总结

posted on   白露~  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2019-04-29 Spring 框架用到的 9 个设计模式汇总!
2019-04-29 设计模式总结
2019-04-29 spring中的设计模式
2019-04-29 深入解析spring中用到的九种设计模式
点击右上角即可分享
微信分享提示