Home Leetcode 1578 - Minimum Time to Make Rope Colorful
Post
Cancel

Leetcode 1578 - Minimum Time to Make Rope Colorful

The question is obviously a dynamic programming question. By defining an array of minimum time needed to make the ballon sequence end with a specific colour (i.e., the array index). The algorithm is straightforward by the data structure definition.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function minCost(colors: string, neededTime: number[]): number {
  const cost = Array(27).fill(100000000)
  cost[0] = 0
  for ( let i=0;i<colors.length;++i ) {
    let c = colors.charCodeAt(i) - 96
    let min = 100000000
    for ( let j=0;j<27;++j ) {
      if ( c !== j ) {
        min = Math.min(min, cost[j])
        cost[j] += neededTime[i]
      }
    }
    cost[c] = Math.min(min, cost[c] + neededTime[i])
  }
  
  return cost.reduce((acc, cur) => Math.min(acc, cur), cost[0])
};
This post is licensed under CC BY-NC-ND 4.0 by the author.