22 lines
707 B
Java
22 lines
707 B
Java
|
class Solution {
|
||
|
public int minCost(String colors, int[] neededTime) {
|
||
|
int[] dp = new int[colors.length() + 1];
|
||
|
Arrays.fill(dp, 0);
|
||
|
char previousColor = 0;
|
||
|
int previousTime = 0;
|
||
|
|
||
|
for (int i = 1; i <= colors.length(); ++i) {
|
||
|
if (colors.charAt(i - 1) == previousColor) {
|
||
|
dp[i] = dp[i - 1] + Math.min(previousTime, neededTime[i - 1]);
|
||
|
previousTime = Math.max(previousTime, neededTime[i - 1]);
|
||
|
} else {
|
||
|
dp[i] = dp[i - 1];
|
||
|
previousColor = colors.charAt(i - 1);
|
||
|
previousTime = neededTime[i - 1];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return dp[colors.length()];
|
||
|
}
|
||
|
}
|