Minimum Replacements to Sort the Array

HardArrayMathGreedy

Solution

export function minimumReplacement(nums: number[]): number {
  const n = nums.length;
 
  let answer = 0;
  for (let i = n - 2; 0 <= i; i--) {
    if (nums[i] <= nums[i + 1]) {
      continue;
    }
    const numElements = Math.floor((nums[i] + nums[i + 1] - 1) / nums[i + 1]);
 
    answer += numElements - 1;
    nums[i] = Math.floor(nums[i] / numElements);
  }
 
  return answer;
}