「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > ビットワイズとゼロを超える最大の組み合わせ

ビットワイズとゼロを超える最大の組み合わせ

2025-03-26に投稿されました
ブラウズ:771

Largest Combination With Bitwise AND Greater Than Zero

2275。ビットワイズとゼロを超える最大の組み合わせ

難易度: medium

トピック:アレイ、ハッシュテーブル、ビット操作、カウント

bitwiseとarray numsのはビットワイズであり、すべての整数のnums。

    たとえば、nums = [1、5、3]の場合、ビットごとに、1&5&3 = 1に等しい。
  • また、nums = [7]の場合、ビットワイズと7です。
陽性整数候補の配列が与えられます。候補者の数のすべての

の組み合わせのビットワイズとを評価します。候補者の各番号は、各組み合わせでに1回のみ使用できます。 return 最大の

最大の

の組み合わせとビットワイズとの組み合わせは0 よりも 例1:

入力:
    候補者= [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:

入力:候補者= [8,8]

  • output: 2
  • 説明:最大の組み合わせ[8,8]は、少し回り、8 = 8> 0です。
  • 組み合わせのサイズは2なので、2を返します。
    • 制約:

1 5

    1 7
  • ヒント:

ビットごとにゼロを超えるには、組み合わせのすべての数値に対して少なくとも1つのビットが1でなければなりません。 候補者は長さ24ビットなので、ビット位置ごとに最大の組み合わせのサイズを計算して、ビットワイズとそのビット位置で1を持つようになります。

  1. 解決:
バイナリ表現の少なくとも1つのビット位置が組み合わせのすべての数値にわたって設定されたままである数字のグループの識別に焦点を当てる必要があります。

解決策の概要

bit Analysis

:候補者の各数値は最大24ビット(1
  • count各位置でセットビットをカウントします:各ビット位置について、候補者の数が1に設定されている数を数えます。複数の数字が同じ位置で少し共有する場合、ビット位置でビットワイズとゼロよりも大きい組み合わせを形成する可能性があります。

  • 最大のカウント
  • :任意の位置で一定の部分を持つ最大数の数字は、ビットワイズと結果がゼロより大きい最大の組み合わせを表すため、答えになります。

    候補を考慮する= [16、17、71、62、12、24、14]:
  • 各番号をバイナリに変換し、ビット位置を分析します。 すべての数値で各ビットが設定されている回数をカウントします。

  • すべてのビット位置で最大カウントを見つけます。

    このソリューションをphp:

    2275に実装しましょう。ビットワイズとゼロを超える最大の組み合わせ

    • 説明:

    各ビット位置をループします:各ビット位置を0から23に反復します。

    bit set
    
    

    最大コンビネーションサイズ
      を更新:すべてのビット位置で最高のカウントを追跡します。
    1. 結果を返します
    2. :結果は、必要に応じて、ビットワイズとゼロを超える最大の組み合わせサイズです。
    3. 複雑さ分析
    4. time complexity
    5. o(n x 24)= o(n)
    6. 、ここで、

    n
    • は候補者の要素の数です。 Space Complexity o(1) このアプローチは、入力サイズの制限を処理するのに十分効率的です(condation.length 5
    • )。
    • 連絡先リンク このシリーズが役立つと思う場合は、リポジトリをgithubでスターにするか、お気に入りのソーシャルネットワークの投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味があります!
    このようなもっと役立つコンテンツが必要な場合は、私にフォローしてください:

    linkedin

    github

    リリースステートメント この記事は、https://dev.to/mdarifulhaque/22275で再現されています。
    最新のチュートリアル もっと>

    免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

    Copyright© 2022 湘ICP备2022001581号-3