你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

LeetCode知识点总结 - 1827

2021/12/27 4:57:14

LeetCode 1827. Minimum Operations to Make the Array Increasing

考点难度
GreedyEasy
题目

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;
}