小编use*_*787的帖子

最少火车站站点数

我收到了这个面试问题,并坚持下去:

从0号站开始有无数的火车站.

有无数的火车.第n列火车在所有k*2 ^(n-1)站停靠,其中k在0和无穷大之间.

当n = 1时,第一列火车停在0,1,2,3,4,5,6等站点.

当n = 2时,第二列火车在0,2,4,6,8等站停止.

当n = 3时,第三列火车在0,4,8,12等站停靠.

给定起始站号和终端站号,返回它们之间的最小停靠点数.您可以使用任何列车从一站到另一站.

例如,start = 1和end = 4之间的最小停靠次数为3,因为我们可以从1到2到4.

我正在考虑一个动态编程解决方案,它将存储在和dp[start][end]之间的最小步数.我们使用构建数组.但我无法让它发挥作用.你是如何解决这个问题的?startendstart...mid1, mid1...mid2, mid2...mid3, ..., midn...end

澄清:

  1. 火车只能从较低的号码站向前移动到较高的号码站.
  2. 火车可以从停靠的任何车站开始.
  3. 可以按任何顺序登上火车.n = 1列车可以在登上n = 3列车之前或之后登上.
  4. 火车可多次登船.例如,允许登上n = 1列车,然后登上n = 2列车,最后再次登上n = 1列车.

algorithm dynamic-programming

39
推荐指数
3
解决办法
4308
查看次数

标签 统计

algorithm ×1

dynamic-programming ×1