java: add “1578. Minimum Time to Make Rope Colorful”

Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
Matej Focko 2023-12-28 01:04:42 +01:00
parent fdc2539ddb
commit 10369a5031
Signed by: mfocko
GPG key ID: 7C47D46246790496

View file

@ -0,0 +1,22 @@
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()];
}
}