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

Leetcode 3538. Merge Operations for Minimum Travel Time

  • Leetcode 3538. Merge Operations for Minimum Travel Time
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3538. Merge Operations for Minimum Travel Time

1. 解题思路

这一题思路上就是一个动态规划的思路,我们只需要考察每一个位置如果不进行merge的情况与进行merge的情况,然后取其中的较小值即可。

其中,如果不进行merge,那么当前段路程的速度就是当前节点下的速度,其下一段的速度就是time序列当中下一段节点的速度。

反之,如果当前结果要进行merge,那么当前节点的速度依然保持为之前记录的当前节点的速度,而其下一段的速度就是在之前记录的下一段速度的基础上加上time序列中下一个节点的时间。

2. 代码实现

给出python代码实现如下:

class Solution:def minTravelTime(self, l: int, n: int, k: int, position: List[int], time: List[int]) -> int:@lru_cache(None)def dp(idx, k, present, nxt):if idx + k == n-2:return present * (l - position[idx])if k == 0:return present * (position[idx+1] - position[idx]) + dp(idx+1, k, nxt, time[idx+2])return min(present * (position[idx+1] - position[idx]) + dp(idx+1, k-1, present, nxt + time[idx+2]),present * (position[idx+1] - position[idx]) + dp(idx+1, k, nxt, time[idx+2]),)return dp(0, k, time[0], time[1])

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

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

相关文章:

  • Spring AI版本1.0.0-M6和M8效果比较
  • Shell-流程控制-判断
  • 过采样处理
  • educoder平台课-Python程序设计-6.序列类型
  • 【翻译、转载】【转载】LLM 的函数调用与 MCP
  • Linux 的网络卡
  • ST-LINKV2仿真器下载
  • Java基于SaaS模式多租户ERP系统源码
  • 四年级数学知识边界总结思考-上册
  • GCC 使用指南
  • 具身系列——Q-Learning算法实现CartPole游戏(强化学习)
  • 实时操作系统与AI Agent的协同进化:重塑人形机器人产业格局
  • 「分享」学术工具
  • vae笔记
  • P4549 【模板】裴蜀定理
  • Android第三次面试总结之Java篇补充
  • 不定长滑动窗口(求最短/最小)
  • [运维]Linux安装、配置并使用atop监控工具
  • Spring MVC常见注解详解
  • 力扣1128题解
  • sql错题(1)
  • ssh连接云服务器记录
  • 一种实波束扫描雷达角超分辨方法——论文阅读
  • Delphi创建IIS虚拟目录的方法
  • StampLock的源码详细剖析
  • SSE技术的基本理解以及在项目中的使用
  • 商场防损部绩效考核制度与管理方法
  • 【操作系统】读者-写者问题
  • Git_.gitignore文件简介及使用
  • C与指针——输入输出