LeetCode 1827. Minimum Operations to Make the Array Increasing
考点 | 难度 |
---|---|
Greedy | Easy |
题目
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.
思路
每个数都和前一位的数+1比较,如果不足就补上两个之间的差距。
答案
public int minOperations(int[] nums) {
if (nums.length <= 1) {
return 0;
}
int count = 0;
int num = nums[0];
for (int i = 1; i < nums.length; i++) {
if (num == nums[i]) {
count++;
num++;
} else if (num > nums[i]) {
num++;
count += num - nums[i];
} else {
num = nums[i];
}
}
return count;
}