[LeetCode]#1827. Minimum Operations to Make the Array Increasing

Environment: Python 3.8

Key technique: if

You are given an integer array nums (0-indexed). In one operation, you can choose an element of the array and increment it by 1.

  • For example, if nums = [1,2,3], you can choose to increment nums[1] to make nums = [1,3,3].

Return the minimum number of operations needed to make nums strictly increasing.

An array nums is strictly increasing if nums[i] < nums[i+1] for all 0 <= i < nums.length - 1. An array of length 1 is trivially strictly increasing.

Example 1:

Input: nums = [1,1,1]
Output: 3
Explanation: You can do the following operations:
1) Increment nums[2], so nums becomes [1,1,2].
2) Increment nums[1], so nums becomes [1,2,2].
3) Increment nums[2], so nums becomes [1,2,3].

Example 2:

Input: nums = [1,5,2,4,1]
Output: 14

Analysis:

  1. If only one number is in list, return 0
  2. If nums[i+1] <num[i], calculate diference and add 1 to nums[i]. Such as 2+3+1=6 > 5 in step2.
  3. Search all list completely and get new list [1 ,5 ,6, 7, 8]
  4. new-orginal list and summarize them. We get 14.

Solution:

class Solution:
def minOperations(self, nums):
ans=0
length=len(nums)
if length < 2:
return 0
else:
for i in range(length-1):
if nums[i+1]<nums[i]:
ans=ans+nums[i]-nums[i+1]+1
nums[i+1]=nums[i]+1
return ans

Submissions: