3494. 酿造药水需要的最少总时间
3494. 酿造药水需要的最少总时间
题目链接:3494. 酿造药水需要的最少总时间
代码如下:
class Solution {
public:long long minTime(vector<int>& skill, vector<int>& mana) {int n = skill.size();vector<long long> last_finish(n);//第i名巫师完成上一瓶药水的时间for (int m : mana) {//按题意模拟long long sum_t = 0;for (int i = 0;i < n;i++) {sum_t = max(sum_t, last_finish[i]) + skill[i] * m;}//倒推:如果酿造药水的过程中没有停顿,那么lastFinish[i]应该是多少last_finish[n-1] = sum_t;for (int i = n - 2;i >= 0;i--) {last_finish[i] = last_finish[i + 1] - skill[i + 1] * m;}}return last_finish[n - 1];}
};