#algorithm #recursion #binary
#алгоритм #рекурсия #двоичном
Вопрос:
Например, при заданном входе n = 2 я хочу, чтобы результат был [‘1111’, ‘1001’, ‘0110’, ‘0000’, ‘0101’, ‘1010’]. Обратите внимание, что порядок вывода не имеет значения.
Я чувствую, что должен использовать рекурсивное решение, в базовом случае, когда n = 1 и возвращает [00, 11] , но я не могу понять следующий шаг. Я на правильном пути?
Спасибо, любая помощь приветствуется.
Комментарии:
1. Почему n= 2? Должно ли это быть n = 4?
Ответ №1:
Сгенерируйте все двоичные строки длиной n, разделите их по количеству установленных битов и поместите каждую пару (включая elt с самим собой) в сегменты.
Например. для n = 2 у вас есть:
0: 00
1: 01, 10
2: 11
0x0: 0000
1x1: 0101, 0110, 1001, 1010
2x2: 1111