1827. Minimum Operations to Make the Array Increasing
https://leetcode.com/problems/minimum-operations-to-make-the-array-increasing/description/
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 incrementnums[1]
to makenums = [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
Example 3:
Input: nums = [8] Output: 0
Constraints:
1 <= nums.length <= 5000
1 <= nums[i] <= 104
------
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Solution { | |
public int minOperations(int[] nums) { | |
int ans = 0; | |
for (int i = 1; i < nums.length; i++) { | |
if (nums[i] <= nums[i - 1]) { | |
ans += nums[i - 1] + 1 - nums[i]; | |
nums[i] = nums[i - 1] + 1; | |
} | |
} | |
return ans; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Solution: | |
def minOperations(self, nums: List[int]) -> int: | |
ans = 0 | |
for i in range(1, len(nums)): | |
if nums[i] <= nums[i - 1]: | |
ans += nums[i - 1] + 1 - nums[i] | |
nums[i] = nums[i - 1] + 1 | |
return ans |