程序以找到最低成本来增加树的高度,而在Python中,没有相邻的树具有相同的高度
假设我们有一个称为高度的数字列表,它表示植物的高度,而我们还有另一个称为成本的值列表,它表示将植物的高度增加一所需的价格。我们必须找到最小的成本,以使高度列表中的每个高度都与相邻高度不同。
因此,如果输入像高度=[3、2、2]成本=[2、5、3],则输出将为3,因为我们可以将最后一个高度增加1,即成本3。
在线示例
让我们看下面的实现以更好地理解-
class Solution: def solve(self, heights, costs): def dp(idx, l_height): if idx == len(heights) - 1: return 0 if heights[idx] != l_height else costs[idx] ret = float("inf") for i in range(3): if heights[idx] + i != l_height: ret = min(ret, dp(idx + 1, heights[idx] + i) + costs[idx] * i) return ret return dp(0, None) ob = Solution() heights = [3, 2, 2] costs = [2, 5, 3] print(ob.solve(heights, costs))
输入值
[3, 2, 2], [2, 5, 3]输出结果
3