【Leetcode】跳跃游戏 | Jump Jump,Greedy Greedy

news2025/1/15 16:28:24

55 跳跃游戏

给定一个非负整数数组 nums ,你最初位于数组的 第一个下标

数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标

  • 不断更新当前能够到达的范围maxReach
class Solution {
    public boolean canJump(int[] nums) {
        int maxReach = 0;
        int i = 0;
        while (i <= maxReach && maxReach < nums.length - 1) {
            maxReach = Math.max(maxReach, i + nums[i]);
            i++;
        }
        return maxReach >= nums.length - 1;
    }
}

45 跳跃游戏Ⅱ

给定一个非负整数数组 nums ,你最初位于数组的 第一个下标

数组中的每个元素代表你在该位置可以跳跃的最大长度。

求到达数组最后一个下标的最小跳跃次数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TE3p7Uz3-1686285771786)(【Leetcode】55-跳跃游戏-45-跳跃游戏-Ⅱ/image-20230609123704472.png)]

按跳跃步数访问,当要跳第 i + 1 i+1 i+1步时,在第 i i i步可到达的范围里,记录第 i + 1 i+1 i+1步能跳跃的最远距离。当最远距离达到数组最后一个元素时,跳到了末尾,可结束循环。

class Solution {
    public int jump(int[] nums) {
        int count = 0;

        // 当前最远可以跳到什么地方,下一步最远可以跳到什么地方
        int maxReach = 0;
        int nextReach = 0;
        // 当前位置
        int i = 0;

        // 当跳跃count步,但未到达终点时,第count步的可达范围为[i, maxReach]
        while (maxReach < nums.length - 1) {
            
            // 看看跳count + 1步最远能够跳到哪里,更新nextReach
            while (i <= maxReach) {
                nextReach = Math.max(nextReach, i + nums[i]);
                i++;
            }
            
            // 上面循环结束时,i = maxReach + 1
            // 第count + 1步可达范围[i, nextReach]
            maxReach = nextReach;
            count++;
        }

        return count;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/626820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云原生到底是个啥玩意?从云端降临的超级技术:云原生

目录 福利&#xff1a;文末分享云原生相关全套资料哦 一、云计算&#xff1f;云原生&#xff1f; 二、云原生带来什么好处 7个字&#xff1a;隔离、弹性、自动化。 三、云原生的基础知识 四、云原生中最重要的概念 1、虚机 2、容器 3、容器编排 4、VPC 5、微服务&am…

Lambda表达式 函数式接口 Stream流

目录 一. Lambda表达式 1. 函数式编程思想概述 2. Lambda的优化 3. Lambda的格式 标准格式: 参数和返回值: 省略格式: 4. Lambda的前提条件 二. 函数式接口 1. 概述 格式 FunctionalInterface注解 2. 常用函数式接口 Supplier接口 Consumer接口 Function接口 P…

2023大厂精选 Java 面试真题集锦(含答案),面试一路开挂

前言 跳槽求职时时刻刻都在发生&#xff0c;但是我建议大家跳槽之前&#xff0c;先想清楚为什么要跳槽。切不可跟风&#xff0c;看到同事一个个都走了&#xff0c;自己也盲目的开始面试起来&#xff0c;期间也没有准备充分&#xff0c;到底是因为技术原因&#xff0c;影响自己…

poll函数和epoll函数族

一、IO多路复用 二、多路复用的实现方式 select函数 int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout); poll函数 int poll(struct pollfd *fds, nfds_t nfds, int timeout); epoll 函数族 epoll_create epoll_wai…

(6.2-6.8)【大数据新闻速递】

关 注gzh“大数据食铁兽”&#xff0c;了解更多的大数据快讯 【华为曹冲&#xff1a;聚焦四大战略方向&#xff0c;共建数智金融未来】 6月7日&#xff0c;华为全球智慧金融峰会2023在上海举行。会上&#xff0c;华为数字金融军团CEO曹冲发表《智领睿变&#xff0c;共建数智…

Redis学习总结(一)

Redis 持久化机制 RDB 持久化 Redis RDB&#xff08;Redis DataBase&#xff09;是Redis的一种持久化方式。它可以将Redis中的数据快照存储在硬盘上&#xff0c;并在需要时重构该数据快照。因为可以在磁盘上存储和重构数据快照&#xff0c;所以RDB是一种非常高效的Redis数据备…

用于语义分割的动态焦点感知位置查询

文章目录 Dynamic Focus-aware Positional Queries for Semantic Segmentation摘要本文方法Dynamic Focus-aware Positional QueriesEfficient High-resolution Cross-attentionFocus-aware Segmentation Framework 实验结果 Dynamic Focus-aware Positional Queries for Seman…

Servlet运行原理及常见API

文章目录 一. Servlet运行原理二. Servlet常用API1. HttpServlet1.1. Servlet的生命周期1.2. Post请求的构造 2. HttpServletRequest2.1. 获取请求信息2.2. 前端给后端传输数据的三种方式2.2.1. 发送Get请求通过query string传输数据2.2.2. 发送Post请求通过form提交数据2.2.3.…

Python爬虫基础知识点

Python爬虫是使用Python编写的程序&#xff0c;可以自动抓取互联网上的数据。常用的Python爬虫框架包括Scrapy、BeautifulSoup、Requests等。Python爬虫可以应用于众多场合&#xff0c;如大数据分析、信息监测、数据挖掘和机器学习等领域。那么新手应该如何学习python爬虫呢&am…

LLCC68+HC32L110

一、准备 最近研究一下LORA&#xff0c;因为LLCC68是阉割版本的SX126X&#xff0c;所以就选用这颗芯片了 模块&#xff1a;随便选一家都可以我简单做了个测试板&#xff0c;接口如下&#xff1a;只需要注意DIO配置成中断引脚即可 二、程序流程 RX TX初始化 #define RF_FREQ…

springboot openfeign Sentinel统一降级处理

背景 openfeign降级常规操作如下: 此种方式太过于麻烦&#xff0c;每一个方法都要写一个降级逻辑&#xff0c;并且降级逻辑大多是雷同的。 目标 提供默认的降级方式&#xff0c;若openfeign未指定FallbackFactory则走默认降级方式&#xff0c;否则就走自定义的FallbackFact…

C++【unordered_map/set的底层实现-哈希表】—含有源代码

文章目录 前言一、unordered_map/unordered_set容器&#xff08;1&#xff09;unordered_map容器介绍及使用&#xff08;2&#xff09;unordered_set容器介绍及使用&#xff08;3&#xff09;它们和map/set对比 二、容器底层结构&#xff08;1&#xff09;哈希表概念&#xff0…

分布式算法之一致性 Hash 算法

tip&#xff1a;作为程序员一定学习编程之道&#xff0c;一定要对代码的编写有追求&#xff0c;不能实现就完事了。我们应该让自己写的代码更加优雅&#xff0c;即使这会费时费力。 &#x1f495;&#x1f495; 推荐&#xff1a;体系化学习Java&#xff08;Java面试专题&#…

第35步 机器学习实战DLC:不平衡数据处理(下)

失踪人口回归的第二期&#xff0c;继续说一说用PSM处理不平衡数据。 一、啥叫PSM PSM全称为Propensity Score Matching&#xff0c;翻译过来就是倾向匹配得分&#xff0c;为了省流&#xff0c;让小Chart介绍一下&#xff1a; 放到我们的数据就是&#xff1a;根据某个特征&…

架构师需要看透公司的用户心智定位

一个架构师要站在用户的角度去思考架构的规划和设计。把注意力放在用户身上&#xff0c;已经有无数案例证明是可以带来重大商业和技术突破的。 很多创业公司&#xff0c;从初创到倒闭&#xff0c;都没搞清楚自己的目标人群和心智。如果一个公司&#xff0c;能锁定目标人群及其…

7个最佳WooCommerce跨境电商社交媒体插件

在互联的早期&#xff0c;您通常可以将产品直接放到网上并出售。但在今天你必须进行营销和做广告。如果没有包括社交媒体在内的可持续营销策略&#xff0c;您的商店可能会被忽视。值得高兴的是&#xff0c;有很多 WooCommerce跨境电商社交媒体插件可以用来传播信息&#xff0c;…

【CMake 入门与进阶(5)】 CMakeLists.txt 语法规则基础及部分常用指令-续(附使用代码)

project project命令用于设置工程名称&#xff1a; # 设置工程名称为 HELLO project(HELLO)执行这个之后会引入两个变量&#xff1a;HELLO_SOURCE_DIR 和 HELLO_BINARY_DIR&#xff0c;注意这两个变量名的前缀就是工程名称&#xff0c;HELLO_SOURCE_DIR 变量指的是 HELLO 工程…

华为推出首款全栈自主数据库 GaussDB,你怎么看?

鸿蒙套壳&#xff0c;鸿蒙套壳完了ERP套&#xff0c;ERP套壳&#xff0c;ERP套壳完了数据库套壳&#xff0c;数据库套壳完了…… 犹记得GaussDB之前一直宣传是基于PostgreSQL研发而来&#xff0c;不知道今天为啥摇身一变为首款全栈自主分布式数据库了。 基于开源研发改不恶心。…

智能设备管理系统

传统设备实施管理难点&#xff1a; 1、日常工作繁琐&#xff0c;手动纸质记录和 Excel 管理设备数据麻烦&#xff0c;后期难以汇总管理&#xff0c;且数据易丢失。 2、需核对设备巡检、保养、故障维修记录&#xff0c;手动更新设备状态和最近维修时间等。 3、无法实时获取设备最…

大学生网络工程想走网络安全方向该怎么规划?

明确需求,确定方向 网络安全 网络安全 是一个很广的概念&#xff0c;涉及的岗位也是非常多的&#xff0c;有安全服务、安全运维、渗透测试、web安全、安全开发、安全售前等等。可以看看下面每个岗位的要求与自身兴趣能力匹配度再决定最适合自己的方向。 渗透测试/Web安全工程师…