«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Самая большая комбинация с бить и больше нуля

Самая большая комбинация с бить и больше нуля

Опубликовано в 2025-03-26
Просматривать:936

Largest Combination With Bitwise AND Greater Than Zero

2275. Самая большая комбинация с бить и больше нуля

]

сложно: medium

]

темы: Array, хэш -таблица, битовая манипуляция, подсчет

]

] bitwise и массивных Nums - это бить и всех целых чисел в Nums.

]
    ]
  • , например, для nums = [1, 5, 3], бить и равна 1 & 5 & 3 = 1.
  • ]
  • также для Nums = [7], бить и IS 7.
  • ]
]

вам дают массив положительных целых кандидатов. Оцените bitwise и из каждого комбинации чисел кандидатов. Каждое число в кандидатах может использоваться только one в каждой комбинации.

return размер самый большой комбинацию кандидатов с кусочком и больше , чем 0 .

]

пример 1:

]
    ]
  • ] input: кандидаты = [16,17,71,62,12,24,14]
  • ]
  • ] output: 4
  • ]
  • ] объяснение: Комбинация [16,17,62,24] имеет чучеле и 16 & 17 & 62 & 24 = 16> 0.
      ]
    • размер комбинации равен 4.
    • ]
    • можно показать, что ни одна комбинация с размером, превышающим 4, не имеет кусочков и больше 0.
    • ]
    • обратите внимание, что более чем одна комбинация может иметь самый большой размер.
    • ]
    • , например, комбинация [62,12,24,14] имеет кусочек и 62 & 12 & 24 & 14 = 8> 0.
    • ]
    ]
  • ]
]

пример 2:

    ]
  • ] input: candidates = [8,8]
  • ]
  • ] output: 2
  • ]
  • ] объяснение: самая большая комбинация [8,8] имеет чучеле и 8 & 8 = 8> 0.
      ]
    • размер комбинации 2, поэтому мы возвращаем 2.
    • ]
    ]
  • ]
]

ограничения:

    ]
  • 1 5
  • ]
  • 1 7
  • ]
]

Намекать:

    ]
  1. для бить и быть больше нуля, по крайней мере один бит должен быть 1 для каждого числа в комбинации.
  2. ]
  3. кандидаты имеют длину 24 бита, поэтому для каждого бита мы можем рассчитать размер самой большой комбинации, так что бить и будет иметь 1 в этом битовом положении.
  4. ]
]

Решение:

нам нужно сосредоточиться на идентификации групп чисел, где по крайней мере одно битное положение в их двоичном представлении остается установленным (1) во всех числах в комбинации.

]

] Схема решения

]
    ]
  1. Bit Analysis : Поскольку каждое число в кандидатах может быть представлено двоичным номером с до 24 бит (как 1

  2. count устанавливает биты в каждой позиции

    : для каждой битной позиции, подсчитывайте, сколько чисел в кандидатах установлена ​​такого бита в 1. Если несколько чисел имеют немного в одной и той же позиции, они могут потенциально сформировать комбинацию с бить и больше нуля в этой битовой позиции.

    найдите наибольший счет
  3. : самым большим числом чисел с установленным битом в любой конкретной позиции будет ответом, поскольку он представляет собой максимально большую комбинацию, где бить и результат больше нуля.
  4. ] ] ] Пример

    ]
  5. рассмотрим кандидаты = [16, 17, 71, 62, 12, 24, 14]:
]

]

преобразовать каждое число в бинарные и анализировать битовые позиции.

]

подсчитайте, сколько раз каждый бит устанавливается по всем числам.
    ]
  • найдите максимальный счет во всех битовых позициях.
  • ]
  • ]
  • давайте реализуем это решение в PHP:
  • 2275. Самая большая комбинация с бить и больше нуля
]

] Php /** * @param integer [] $ кандидаты * @return Integer */ Функции ... ... ... /** * Перейти к ./solution.php */ } // Пример использования $ Кандидаты = [16, 17, 71, 62, 12, 24, 14]; Echo крупнейшая комбинированность ($ кандидаты); // Вывод: 4 ?> ]
] Объяснение:

]

]

зацикливаться на каждом битовом положении

: мы перечитываем каждую позицию бита от 0 до 23.
    ]
  1. ] подсчитывайте номера с помощью битового набора : для каждой позиции, подсчитайте, сколько чисел в кандидатах имеет этот конкретный набор битов.
  2. ] обновить максимальный размер комбинации : отслеживать наивысший счет во всех положениях битов.
  3. ]
  4. ] вернуть результат : результат является наибольшим размером комбинации с кусочком и больше нуля, как требуется.
  5. ]
  6. ] ] Анализ сложности ]
  7. ]
]

сложности времени

:
  • o (n x 24) = o (n) , где n - число элементов в кандидатах, потому что мы выполняем 24 операции (по одному для каждого бита) для каждого номера. ] Сложность пространства :
  • o (1)
  • , поскольку мы используем только фиксированное количество дополнительного пространства. ] Этот подход достаточно эффективен для обработки предела ввода размера (Candidates.length 5 ).
  • ]

контактные ссылки ]

Если вы нашли эту серию полезной, пожалуйста, рассмотрите возможность предоставить

Repository звезду на GitHub или поделиться постом в ваших любимых социальных сетях? Ваша поддержка будет много значить для меня! ]

, если вы хотите более полезный контент, подобный этому, не стесняйтесь следить за мной:

] ]

LinkedIn

]
  • github
  • ]
  • ] ]
Заявление о выпуске Эта статья воспроизводится по адресу: https://dev.to/mdarifulhaque/2275-draster-combination-with-bitwise-and-grater-han-zero-2hdf?1 Если есть какое-либо нарушение, пожалуйста, свяжитесь с учебой[email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3