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

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.dtcms.com/a/348993.html

相关文章:

  • 新的 Gmail 网络钓鱼攻击利用 AI 提示注入来逃避检测
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十四)垂直滚动条
  • 【URP】[投影Projector]解析与应用
  • 【cs336学习笔记】[第6课]内核优化与Triton框架应用
  • 如何在算力时代乘风破浪?
  • 深度学习中的模型量化及实现示例
  • 【RAGFlow代码详解-4】数据存储层
  • MySQL学习记录-基础知识及SQL语句
  • 【零代码】OpenCV C# 快速开发框架演示
  • 在 Docker 容器中查看 Python 版本
  • C语言第十二章自定义类型:结构体
  • LangChain RAG系统开发基础学习之文档切分
  • Python核心技术开发指南(016)——表达式
  • 多线程——认识Thread类和创建线程
  • 【记录】Docker|Docker镜像拉取超时的问题、推荐的解决办法及安全校验
  • FPGA时序分析(四)
  • asio的线程安全
  • 使用Cobra 完成CLI开发 (一)
  • 3.1 存储系统概述 (答案见原书 P149)
  • C++ string自定义类的实现
  • 【论文阅读 | arXiv 2025 | WaveMamba:面向RGB-红外目标检测的小波驱动Mamba融合方法】
  • 上科大解锁城市建模新视角!AerialGo:从航拍视角到地面漫步的3D城市重建
  • 深度剖析Spring AI源码(三):ChatClient详解,优雅的流式API设计
  • R60ABD1 串口通信实现
  • 在 Ubuntu 24.04 或 22.04 LTS 服务器上安装、配置和使用 Fail2ban
  • 【Qwen Image】蒸馏版与非蒸馏版 评测小结
  • 第3篇:配置管理的艺术 - 让框架更灵活
  • 多线程下单例如何保证
  • [身份验证脚手架] 前端认证与个人资料界面
  • 2025.8.18-2025.8.24第34周:有内耗有挣扎