码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【LeetCode】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 , 所以永远不可能到达最后一个下标。

    2 答案

    自己写的不对,贪心算法,处理不了一些带0的数组

    class Solution:
        def canJump(self, nums: List[int]) -> bool:
            end, max_bound = 0, 0
            if nums[0] == 0 and len(nums) > 1:
                return False
            for i in range(len(nums)-1):
                max_bound = max(max_bound, nums[i]+i)
                if end == i:
                    end = max_bound
            return True if max_bound >= len(nums)-1 else False             
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    参考 45. 跳跃游戏 II,但略有不同,不需要max_bound维护所能到达的最远距离

    class Solution:
        def canJump(self, nums: List[int]) -> bool:
            end = 0
            for i in range(len(nums)):
                if i <= end:
                    end =  max(end, nums[i]+i)
                if end >= len(nums) - 1:
                    return True
            return False
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    官方解,稍作修改就可以,注意可到达的边界和需要遍历的数组长度

    class Solution:
        def canJump(self, nums: List[int]) -> bool:
            end, max_bound = 0, 0
            for i in range(len(nums)):  # 最后一个数也要遍历,解决单个元素数组的情况
                max_bound = max(max_bound, nums[i]+i)
                if end == i:
                    end = max_bound
                if end >= len(nums)-1:  # 判断可到达边界,注意,end才是可到达的边界,不是max_bound
                    return True
            return False             
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    https://leetcode.cn/problems/jump-game/solutions/40978/tan-xin-cong-hou-xiang-qian-tiao-yue-zhu-xing-jie-/

  • 相关阅读:
    蝴蝶书--ChatGPT基础科普
    【因果推断python】41_异质干预效应1
    html+css+js实现简单的交互效果
    Mygin上下文之sync.Pool复用
    DSPE-PEG-Silane,DSPE-PEG-SIL,磷脂-聚乙二醇-硅烷可修饰材料表面
    【C语言】数组下标为啥从0开始?下标越界访问一定报错吗?
    Excel中功能区的存放位置很灵活,可以根据需要隐藏或显示
    m基于遗传优化算法的公式参数拟合matlab仿真
    四级词汇词根 联想记忆法乱序版
    解决php中通过exec调用python脚本报ModuleNotFoundError错误
  • 原文地址:https://blog.csdn.net/CSDNLHCC/article/details/133944183
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号