public int integerReplacement(int n) {
Queue<Long> queue = new LinkedList<>();
Set<Long> visited = new HashSet<>();
while (!queue.isEmpty()) {
for (int i = 0; i < size; i++) {
long curNum = queue.remove();
if (curNum % 2 == 0 && !visited.contains(curNum / 2)) {
if (!visited.contains(curNum + 1)) {
if (!visited.contains(curNum - 1)) {