我当时是这个思路,不过优化方法跟你不太一样,代码没保存,只能简单说说思路,通过了90%,不知道为啥没AC,思路是,构建一个N+1的数组,代表着从当前城市到N城市的距离

输入数组 nums
动态规划数组 dp

  1. 初始化 dp[i] = A + C * (N - nums[i])
  2. 迭代
    对于每个 城市 i
    最优的左边界lmax和右边界rmax
    对于 lmax 到 i 的城市j
    然后更新dp[i] = min(dp[i], dp[j] + (i - j) * C + A)
    同理,i到rmax 也是
  3. 终止条件:dp[1] 没有变化