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

Leetcode 3660. Jump Game IX

  • Leetcode 3660. Jump Game IX
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3660. Jump Game IX

1. 解题思路

不难看出,对于任意一个位置,其要跳到其所能达到的最大位置的所在,其必然是通过若干次以下操作实现:

  • 跳跃至其后方比起小的元素的最远位置;
  • 跳跃至其前方最大元素所在的位置;

因此,我们只需要预先计算出每一个位置前方最大的元素所在的位置以及其后方比起小的元素的最远位置,然后反复重复上述操作即可得到最终的答案。

2. 代码实现

给出python代码实现如下:

class Solution:def maxValue(self, nums: List[int]) -> List[int]:n = len(nums)pre_max = deepcopy(nums)for i in range(n-1):pre_max[i+1] = max(pre_max[i+1], pre_max[i])pre_index = [i for i in range(n)]for i in range(n-1):pre_index[i+1] = pre_index[i+1] if nums[pre_index[i+1]] >= nums[pre_index[i]] else pre_index[i]elems = [(i, num) for i, num in enumerate(nums)]elems = sorted(elems, key=lambda x: (x[1], x[0]))post_index = [i for i in range(n)]max_idx = -1for idx, num in elems:max_idx = max(max_idx, idx)post_index[idx] = max_idx@lru_cache(None)def dp(idx):if post_index[pre_index[idx]] == idx:return idxreturn dp(post_index[pre_index[idx]])ans = [dp(i) for i in range(n)]return [pre_max[idx] for idx in ans]

提交代码评测得到:耗时1447ms,占用内存173.40MB。

http://www.xdnf.cn/news/18775.html

相关文章:

  • k8sday16调度器
  • MSF基础知识
  • Java 内存模型(JMM)与并发可见性:深入理解多线程编程的基石
  • Java:HashMap的使用
  • K8s 实战:六大核心控制器
  • 什么是 Nonce?
  • 电力电子simulink练习10:反激Flyback电路搭建
  • Linux 的 TCP 网络编程常用API
  • 图像均衡化详解:从直方图均衡到 CLAHE,让图片告别 “灰蒙蒙“
  • 高数 不定积分(4-3):分部积分法
  • 使用虚幻引擎5(UE5)开发类似《原神》的开放世界游戏:从技术架构到实践指南
  • 内网后渗透攻击--域控制器安全(1)
  • 单表查询-分析函数的应用
  • 重置MySQL数据库的密码指南(Windows/Linux全适配)
  • 在 Ruby 客户端里用 ES|QL
  • WSL-linux部署IndexTTS 记录(含本地 CUDA/cuDNN 编译依赖说明)
  • 鸿蒙 ArkTS 开发:Number、Boolean、String 三种核心基本数据类型详解(附实战案例)
  • 夜间跌倒检测响应速度↑150%!陌讯多模态骨架追踪算法在智慧养老院的落地实践
  • 手写MyBatis第32弹-设计模式实战:Builder模式在MyBatis框架中的精妙应用
  • Anaconda搭建keras开发环境小记
  • EP01:【DA】数据分析的概述
  • 【LeetCode】分享|如何科学的刷题?
  • 2025年渗透测试面试题总结-31(题目+回答)
  • 基于springboot的高校后勤保修服务系统/基于android的高校后勤保修服务系统app
  • 力扣594:最和谐子序列
  • ViLU: Learning Vision-Language Uncertainties for Failure Prediction
  • Ubuntu 服务器无法 ping 通网站域名的问题解决备忘 ——通常与网络配置有关(DNS解析)
  • 2025年8月第3周AI资讯
  • AI Prompt 的原理与实战
  • assert使用方法