Minimum Replacements to Sort the Array LeetCode solution in Java
1class Solution {2public long minimumReplacement(int[] nums) {3long ret = 0L;4int n = nums.length;5int last = nums[n - 1];6for (int i = n - 2; i >= 0; i--) {7if (nums[i] <= last) {8last = nums[i];9continue;10}11if (nums[i] % last == 0) {12// split into nums[i] / last elements, operations cnt = nums[i] / last - 1;13ret += nums[i] / last - 1;14} else {15// split into k elements operations cnt = k - 1;16int k = nums[i] / last + 1; // ceil17ret += k - 1;18last = nums[i] / k; // left most element max is nums[i] / k19}20}2122return ret;23}24}