2563。フェアペアの数を数えます
難易度: 中
トピック: 配列、2 つのポインター、二分探索、並べ替え
サイズ n と上下 2 つの整数の 0 インデックス付き 整数配列 num を指定すると、公平なペアの数を返します。
次の場合、ペア (i, j) は 公正です。
例 1:
例 2:
制約:
ヒント:
解決策:
次のアプローチを使用できます:
このソリューションを PHP で実装してみましょう: 2563。フェアペアの数を数えます
説明:
- 並べ替え: 二分探索で有効なペアを見つけやすくするために、配列 nums を並べ替えます。
- 二分探索境界:
- 各要素 nums[i] について、合計が収まる範囲となる下限値と上限値を見つけます。
- 2 つの二分検索を使用して、nums[i] nums[j] が [lower, upper] 内に収まるインデックスの範囲 [left, right) を見つけます。
- ペアのカウント: 各 i の左と右の間の有効なインデックスの数を追加します。
このアプローチの時間計算量は、各要素の並べ替えと二分探索のため O(n log n) であり、大規模な入力に対して十分効率的です。
連絡先リンク
このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!
このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
以上がフェアペアの数を数えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。