Back to all solutions

#1827 - Minimum Operations to Make the Array Increasing

Problem 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 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.

Solution

/**
 * @param {number[]} nums
 * @return {number}
 */
var minOperations = function(nums) {
  let result = 0;
  let previousValue = nums[0];

  for (let i = 1; i < nums.length; i++) {
    if (nums[i] <= previousValue) {
      const requiredValue = previousValue + 1;
      result += requiredValue - nums[i];
      previousValue = requiredValue;
    } else {
      previousValue = nums[i];
    }
  }

  return result;
};