Integer Replacement LeetCode solution in Java
1class Solution {2public int integerReplacement(int n) {3return (int) calc(n, 0);4}56public long calc(long n, int i) {7if (n == 1) return i;8if (n < 1) return 0;910long a = Long.MAX_VALUE, b = Long.MAX_VALUE, c = Long.MAX_VALUE;1112if (n % 2 == 0) a = calc(n / 2, i + 1);13else {14b = calc(n - 1, i + 1);15c = calc(n + 1, i + 1);16}17long d = Math.min(a, Math.min(b, c));18return d;19}20}