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

Leetcode 3494. Find the Minimum Amount of Time to Brew Potions

  • Leetcode 3494. Find the Minimum Amount of Time to Brew Potions
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3494. Find the Minimum Amount of Time to Brew Potions

1. 解题思路

这道题虽说算是搞定了,通过了全部的测试样例,不过还是很暴力的求解的,整体的算法复杂度还是 O ( N M ) O(NM) O(NM),应该只是勉勉强强没有超时吧,没想到啥更好的思路……

我这边的思路的话其实就是非常暴力的遍历求每一轮的最早开始的时间,显然,当前一轮最早的开始时间需要满足此时每一个人手上都是空闲的,即要求遍历每一个巫师时,满足条件当前一轮当中他们之前所有人完成工作的时间点不小于他完成上一轮工作的时间,即:
s t a r t j + ∑ k = 0 i − 1 s k i l l k × m a n a j ≥ s t a r t j − 1 + ∑ k = 0 i s k i l l k × m a n a j − 1 \mathop{start}_{j} + \sum\limits_{k=0}^{i-1}\mathop{skill}_k \times \mathop{mana}_j \geq \mathop{start}_{j-1} + \sum\limits_{k=0}^{i}\mathop{skill}_k \times \mathop{mana}_{j-1} startj+k=0i1skillk×manajstartj1+k=0iskillk×manaj1

由此,我们即可得到每一轮的最早开始时间,进而,我们即可求得最早的完成时间。

2. 代码实现

给出python代码实现如下:

class Solution:
    def minTime(self, skill: List[int], mana: List[int]) -> int:
        n, m = len(skill), len(mana)
        cumsum_skill = list(accumulate(skill, initial=0))
        st = [0 for _ in range(m)]
        for j in range(1, m):
            for i in range(n):
                st[j] += max(0, st[j-1] + cumsum_skill[i+1]*mana[j-1] - st[j] - cumsum_skill[i]*mana[j])
        return st[-1] + cumsum_skill[-1] * mana[-1]

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

http://www.dtcms.com/a/86874.html

相关文章:

  • 网络编程--服务器双客户端聊天
  • 论文阅读:2023 arxiv Multiscale Positive-Unlabeled Detection of AI-Generated Texts
  • 从零构建大语言模型全栈开发指南:第二部分:模型架构设计与实现-2.1.2多头注意力扩展与掩码机制(因果掩码与填充掩码)
  • Qt中通过QLabel实时显示图像
  • 数据分析处理库-Pandas
  • 2.1.项目管理前言
  • 除了setup的表达方法,vue3还有什么表达方法
  • MySQL 处理重复数据:保留一条与两条的实现方案
  • 鸿蒙harmonyOS:笔记 正则表达式
  • Cloudfare内网穿透配置
  • Java设计模式之中介者模式
  • YOLO11改进|全网首发|YOLO11中引入轻量级坐标注意力LCA
  • (UI自动化测试web端)第二篇:元素定位的方法_class定位
  • OpenCV平滑处理:图像去噪与模糊技术详解
  • LeetCode(704):二分查找
  • 【大模型科普】大模型:人工智能的前沿(一文读懂大模型)
  • Canal同步延迟和数据丢失优化方案
  • IBM ECM结合 第三方AI API 来实现文档分析和 RAG
  • 如何从后端实现页面跳转?
  • MLIR中Dialect的抽象层级 简介
  • 算法训练营第二十二天 | 回溯算法(四)
  • page.json和manifest.json
  • 耗时sql分析
  • 通义灵码2.0 AI 程序员体验:优化与问题解决的全过程
  • 练习用Jupyter使用selenium【疑问未解决版】
  • 关于TVS管漏电流的问题?
  • 计算机二级:函数基础题
  • WMS仓储管理系统架构介绍
  • 进制转换(R转十)(1290. 二进制转换十进制、1292. 十六进制转十进制、1291. 八进制转十进制、1405. 小丽找潜在的素数)
  • 基于深度学习的图像分割项目实践:从理论到应用