2
public int minCost(String colors, int[] neededTime) {3
return minCost(colors, neededTime, 0, neededTime.length - 1);6
public int minCost(String colors, int[] neededTime, int start, int end) {11
int mid = (start + end) / 2;14
int t1 = minCost(colors, neededTime, start, lEnd);15
int t2 = minCost(colors, neededTime, rStart, end);17
while (neededTime[lEnd] < 0 && lEnd >= start) {20
while (neededTime[rStart] < 0 && rStart <= end) {24
if (colors.charAt(lEnd) != colors.charAt(rStart)) {29
if (neededTime[lEnd] <= neededTime[rStart]) {30
removeTime = neededTime[lEnd];31
neededTime[lEnd] *= -1;33
removeTime = neededTime[rStart];34
neededTime[rStart] *= -1;37
return t1 + t2 + removeTime;