leetcode-45.跳跃游戏II

server/2025/3/29 5:09:19/

题很简单,怎么少点写代码比较困难。
这题很明显贪心算法,每次跳跃我们都希望理论上能到达的地方更远。一开始站在初始点,那么可选范围就是0到nums[0],在这里面找能跳得最远的点i,接下来遍历nums[0]+1到 i+nums[i],这是下一个可选范围,仍然找能跳的最远的点j。
可以发现,遍历一次就够。跳多少次怎么判断?我们需要遍历的时候保存当前可选范围和跳跃最远范围,当遍历到可选范围边界了,说明得从刚才的点里能跳的最远的地方跳一次了,此时jump+=1,可选范围更新。
由于遍历总是在可选范围里(每次要超出可选范围了,都会更新可选范围),所以如果在可选范围未到终点时,如果发现某一步能到达终点,就可以停止遍历了,直接jump+1返回

class Solution:def jump(self, nums: List[int]) -> int:jump = 0cur_right = 0 next_right = 0 for i in range(len(nums)-1):next_right = max(next_right, i+nums[i])if next_right >= len(nums)-1:return jump+1if i == cur_right:cur_right = next_right jump+= 1 return jump

http://www.ppmy.cn/server/179144.html

相关文章

CityEngine:3D城市建模专家

今天为大家介绍的软件是CityEngine:3D城市建模专家, 这款建模软件也是ESRI的产品. 下面我们将从软件的主要功能、支持的系统、软件官网等方面对其进行简单的介绍。 CityEngine的官网网址为https://www.esri.com/zh-cn/arcgis/products/arcgis-cityengine/overview。…

Flink 自定义数据源:从理论到实践的全方位指南

目录 第一章:自定义数据源的基础概念 数据源是什么?它在 Flink 中扮演什么角色? Flink 的内置数据源:开箱即用的 “标配” 为什么需要自定义数据源?它的杀手锏在哪? 第二章:自定义数据源的实现之道 接口选择:从简单到高级,选对工具事半功倍 SourceFunction:入门…

当今前沿科技:改变世界的最新技术趋势

人工智能AI)在医疗影像诊断中越来越重要。它帮助医生分析影像,提高了诊断的准确性和效率。传统的方法依赖于医生的经验,可能会出现误诊或漏诊。AI能快速处理大量影像数据,减少这些问题。 AI通过深度学习和图像识别技术&#xff0…

a-date-picker 格式化日期格式 YYYY-MM-DD HH:mm:ss

<template><a-range-pickerv-model:value"dateRange":show-time"{ format: HH:mm:ss, // 时间部分格式defaultValue: [moment(00:00:00, HH:mm:ss), moment(23:59:59, HH:mm:ss)] // 默认时间范围}"format"YYYY-MM-DD HH:mm:ss" // 整体…

[Android] NFC卡模拟 9.05 模拟NFC门禁卡 电梯卡等 手机代替卡片

[Android] NFC卡模拟 链接&#xff1a;https://pan.xunlei.com/s/VOM4VZZGlLh_SLa9m6Mwh4YBA1?pwdaeqp# 【应用名称】NFC卡模拟 【应用版本】9.05 【软件大小】2.7mb 【适用型号】安卓 【应用说明】功能强大且的NFC卡模拟器&#xff0c;可模拟各类门禁卡、电梯卡、部分公司&…

System.InvalidOperationException:对象当前正在其他地方使用

Form窗口当UI更新被多个地方的调用&#xff0c;并且存在冲突时&#xff0c;可能出现以上错误。 比如UI正在初始化&#xff0c;结果另外一个线程调用了更改界面的函数&#xff0c;则会出现上面的错误&#xff0c;因为这个错误是偶发的&#xff0c;所以暂无办法稳定复现。 解决…

31天Python入门——第9天:再学函数

你好&#xff0c;我是安然无虞。 文章目录 再学函数1. 变量在函数中的作用域2. 函数的参数传递.补充学习: 不定长参数*args和**kwargs 3. 值传递和引用传递补充学习: 把函数作为参数传递 4. 匿名函数5. python中内置的常用函数zip()map()filter()all()any() 6. 函数练习 再学函…

Java 24 学习

一、Java 24的核心新功能 1、语言特性增强 模式匹配与原始类型支持&#xff08;JEP 488&#xff09;&#xff1a;允许在instanceof和switch中使用原始类型&#xff0c;简化模式匹配代码&#xff0c;尤其适用于AI推理场景912。 灵活的构造函数体&#xff08;JEP 492&#xff…