给墙壁刷油漆
Posted 929code
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给墙壁刷油漆相关的知识,希望对你有一定的参考价值。
给你两个长度为 n 下标从 0 开始的整数数组 cost 和 time ,分别表示给 n 堵不同的墙刷油漆需要的开销和时间。你有两名油漆匠:
一位需要 付费 的油漆匠,刷第 i 堵墙需要花费 time[i] 单位的时间,开销为 cost[i] 单位的钱。
一位 免费 的油漆匠,刷 任意 一堵墙的时间为 1 单位,开销为 0 。但是必须在付费油漆匠 工作 时,免费油漆匠才会工作。
请你返回刷完 n 堵墙最少开销为多少
1. 动态规划
class Solution
public:
int paintWalls(vector<int>& cost, vector<int>& time)
int n = cost.size();
vector<int> dp(n+1,INT_MAX/2);
dp[0] = 0;
for(int i=0;i<n;i++)//枚举硬币
for(int j=n;j;j--) //由后往前,每个硬币只枚举一次
dp[j] = min(dp[j],dp[max(j-time[i]-1,0)] + cost[i]);
return dp[n];
;
以上是关于给墙壁刷油漆的主要内容,如果未能解决你的问题,请参考以下文章