Back to all solutions
#397 - Integer Replacement
Problem Description
Given a positive integer n, you can apply one of the following operations:
- If n is even, replace n with n / 2.
- If n is odd, replace n with either n + 1 or n - 1.
Return the minimum number of operations needed for n to become 1.
Solution
/**
* @param {number} n
* @return {number}
*/
/**
* @param {number} n
* @param {number} count
* @return {number}
*/
var integerReplacement = function(n, count = 0) {
if (n === 1) return count;
if (n % 2 === 0) {
return integerReplacement(n / 2, count + 1);
} else {
return Math.min(integerReplacement(n + 1, count + 1), integerReplacement(n - 1, count + 1));
}
};