假设我们有一个数组 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