当前位置: 首页> 教育> 锐评 > 怎样做一个好的网页_大连网络营销公司排名_新手小白怎么学做运营_营销策略分析

怎样做一个好的网页_大连网络营销公司排名_新手小白怎么学做运营_营销策略分析

时间:2025/7/11 15:12:17来源:https://blog.csdn.net/codename_cys/article/details/146459813 浏览次数:2次
怎样做一个好的网页_大连网络营销公司排名_新手小白怎么学做运营_营销策略分析
  • 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。

关键字:怎样做一个好的网页_大连网络营销公司排名_新手小白怎么学做运营_营销策略分析

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: