我当时是这个思路,不过优化方法跟你不太一样,代码没保存,只能简单说说思路,通过了90%,不知道为啥没AC,思路是,构建一个N+1的数组,代表着从当前城市到N城市的距离
输入数组 nums
动态规划数组 dp
- 初始化 dp[i] = A + C * (N - nums[i])
- 迭代
对于每个 城市 i
最优的左边界lmax和右边界rmax
对于 lmax 到 i 的城市j
然后更新dp[i] = min(dp[i], dp[j] + (i - j) * C + A)
同理,i到rmax 也是 - 终止条件:dp[1] 没有变化