/** * 397. Integer Replacement * https://leetcode.com/problems/integer-replacement/ * Difficulty: Medium * * Given a positive integer n, you can apply one of the following operations: * 1. If n is even, replace n with n / 2. * 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. */ /** * @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)); } };