在 Python 中查找子数组上的最小增量数以形成目标数组的程序

假设我们有一个名为 target 的数组,其值为正。现在考虑一个大小相同且全为零的数组初始值。如果我们执行此操作,我们必须找到从初始值生成目标数组所需的最小操作数:(从初始值中选择任何子数组并将每个值加一。)

因此,如果输入类似于 target = [2,3,4,3,2],那么输出将是 4,因为最初数组是 [0,0,0,0,0] 首先通过选择子数组从索引 0 到4 并将其增加 1,因此数组将是 [1,1,1,1,1],然后再次从索引 0 到 4 中选择使其成为 [2,2,2,2,2],然后从中选择元素索引 1 到 3 并增加,因此数组将是 [2,3,3,3,2],最后选择索引 2 并制作与目标相同的数组 [2,3,4,3,2]。

示例

让我们看下面的实现来更好地理解

def solve(target):

   prev_num = 0

   steps = 0

   for val in target:

      steps += val-prev_num if val > prev_num else 0

      prev_num = val

   return steps

target = [2,3,4,3,2]

print(solve(target))

输入

[2,3,4,3,2]
输出结果
4

以上是 在 Python 中查找子数组上的最小增量数以形成目标数组的程序 的全部内容, 来源链接: utcz.com/z/358763.html

回到顶部