Найдите размер наибольшего подмножества с побитовым И больше, чем их побитовое XOR

Опубликовано: 20 Сентября, 2022

Учитывая массив arr[] из N целых чисел, задача состоит в том, чтобы найти размер наибольшего подмножества так, чтобы побитовое И всех элементов подмножества было больше, чем побитовое исключающее ИЛИ всех элементов подмножества.

Пример:

Input: arr[] = {1, 2, 3, 4, 5}
Output: 2
Explanation: The subset {2, 3} has the bitwise AND of all elements as 2 while the bitwise XOR of all elements os 1. Hence, bitwise AND > bitwise XOR. Therefore, the required size of the subset is 2 which is the maximum possible. Another example of a valid subset is {4, 5}.

Input: arr[] = {24, 20, 18, 17, 16}
Output: 4

Подход: данная проблема может быть решена путем создания всех возможных подмножеств данного набора с использованием рекурсивного подхода и сохранения значения побитового И и побитового XOR для каждого подмножества. Требуемым ответом будет максимальный размер подмножества, чтобы оно было побитовым И > побитовым XOR.

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(2 N )
Вспомогательное пространство: O(1)

РЕКОМЕНДУЕМЫЕ СТАТЬИ