Я пытаюсь решить проблему бинарного разрыва, используя рекурсию. Это может быть легко решено без рекурсии. Но я хочу решить это с помощью рекурсии. Приведенная ниже программа принимает целое число в качестве ввода и находит бинарный разрыв. < /P>
Пример: < /p>
input= 9, Binary form = 1001, Answer = 2
input=37, Binary form = 100101, Answer = 2
< /code>
Он находит максимальное количество нулей, которое происходит между двумя 1 в двоичном представлении. < /p>
Я хочу решить это в O (logn). Прямо сейчас приведенная ниже программа просто подсчитывает общее количество нулей и дает выход 3 вместо 2. Как исправить это, чтобы получить правильный выход? < /P>
class BinaryGap {
public int solution(int N){
return solution(N, false, 0);
}
public int solution(int N, boolean prevFlag, int memo) {
if(N memo)
memo = newGap;
}
} else {
prevFlag = (remainder == 1);
return solution(N/2, prevFlag, 0);
}
return memo;
}
public static void main(String args[]){
BinaryGap obj = new BinaryGap();
System.out.println(obj.solution(37));
}
}
Подробнее здесь: https://stackoverflow.com/questions/355 ... -recursion
Решение бинарного разрыва с использованием рекурсии ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему я получаю ошибку рекурсии, если глубина ожидаемой рекурсии должна быть меньше 999?
Anonymous » » в форуме Python - 0 Ответы
- 33 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему я получаю ошибку рекурсии, если глубина ожидаемой рекурсии должна быть меньше 999?
Anonymous » » в форуме Python - 0 Ответы
- 37 Просмотры
-
Последнее сообщение Anonymous
-