使用Python查找使数组增加的最小操作的程序

假设我们有一个数组 nums。在一次操作中,我们可以选择数组中的一个元素并将其加1。例如,如果我们有[4,5,6],我们可以选择索引1处的元素来制作数组[4,5,5] . 然后我们必须找到使 nums 严格增加所需的最小操作次数。

所以,如果输入像nums = [8,5,7],那么输出就会是7,因为我们需要像[8,6,7],[8,7,7],[8,8]一样增加,7],[8,9,7],[8,9,8],[8,9,9],[8,9,10]。

为了解决这个问题,我们将按照以下步骤操作 -

  • 计数:= 0

  • 对于范围 0 到 nums - 1 大小的 i,请执行

    • 计数 := 计数 + nums[i] - nums[i+1] + 1

    • nums[i+1] := nums[i+1] + nums[i] - nums[i+1] + 1

    • 如果 nums[i+1] −= nums[i],则

    • 返回计数

    让我们看看以下实现以获得更好的理解 -

    示例

    def solve(nums):
       count=0
       for i in range(len(nums)-1):
          if nums[i+1]<=nums[i]:
             count+=nums[i]-nums[i+1]+1
             nums[i+1]+=nums[i]-nums[i+1]+1
       return count
    nums = [8,5,7]
    print(solve(nums))

    输入

    [8,5,7]
    输出结果
    7