程序以找到最低成本来增加树的高度,而在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