指定された配列の GCD ペアを検索します
Java Q&A: 指定された配列の GCD ペアを見つけることは、配列内の数値の最大公約数 (GCD) の計算を必要とする一般的な問題です。 Java では、ユークリッド アルゴリズムを使用してこの問題を解決できます。この記事では、PHP エディターの Xigua が、Java を使用して特定の配列の GCD ペアを見つけるメソッドを記述する方法を紹介し、読者がこのアルゴリズムをよりよく理解し、適用できるようにします。
質問内容
サイズ n の整数配列が与えられます。n は偶数です。配列から 2 つの数値を選択し、gcd を求めます。同様に、配列内の残りの項目から 2 つの項目を選択し、gcd を見つけます。上記の手順を繰り返して、gcd ペアを見つけます。 gcd 値を合計し、最大の合計を取得します。
制約:
リーリー例 1:
リーリー ######答え:###### リーリーイラスト:
リーリー例 2:
リーリー ######答え:###### リーリーイラスト:
リーリーこれは私のコードです: リーリー 私のコードは最初の例では機能しますが、2 番目の例では間違った出力が得られます。 デバッグしたところ、使用していた方法が間違っていることがわかりました。この問題を解決する正しい方法は何ですか?
解決策総 gcd を計算するすべての可能な方法を再帰的に検索できます。何をするか?
配列に要素が 2 つだけ含まれている場合は、これら 2 つの要素の gcd のみを返すことができます。
さらに多くの値が含まれている場合は、すべての値のペアを繰り返し処理します。各ペアについて、その gcd を計算し、両方の値が削除された配列のコピーを使用して関数を再帰的に呼び出します。両方の計算の結果を加算すると、現在選択されている値のペアの合計 gcd が得られます。
ここで、これまでに見つかった最高の gcd を追跡し、最後にそれを返します。
これはまさにそれを行う(はずの)コードです。
リーリーこのアルゴリズムは非常に遅いです。作業をスピードアップする必要がある場合、改善できる領域が少なくとも 2 つあります。
gcd の計算は高価な操作です。
考えられる一意の値のすべてのペアの gcd を事前計算し、それらをハッシュマップに保存すると、二重計算が排除されます。
いくつかの可能な順列を複数回チェックします。 (例: 次の再帰で最初のペアを選択してから 2 番目のペアを選択することは、2 番目のペアを選択してから最初のペアを選択することと同じです)
この問題を解決する方法について漠然としたアイデアがありますが、今夜は遅すぎます はい、 ごめん。
- おそらく、より高速なアルゴリズムがあると思われますが、これは単なる私の考えです。
- 編集者 : そうですね、少し寝てから、急に理解できました。ペアを作成するときに外側のループを省略すると、ペアの重複した並べ替えは行われません。基本的には、次のように
を 0 に置き換えるだけです。 リーリー
以上が指定された配列の GCD ペアを検索しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ブートストラップの写真を集中させる方法はたくさんあり、FlexBoxを使用する必要はありません。水平にのみ中心にする必要がある場合、テキスト中心のクラスで十分です。垂直または複数の要素を中央に配置する必要がある場合、FlexBoxまたはグリッドがより適しています。 FlexBoxは互換性が低く、複雑さを高める可能性がありますが、グリッドはより強力で、学習コストが高くなります。メソッドを選択するときは、長所と短所を比較検討し、ニーズと好みに応じて最も適切な方法を選択する必要があります。

上位10の暗号通貨取引プラットフォームには、1。Okx、2。Binance、3。Gate.io、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

ゴマのオープンエクスチェンジを中国語に調整する方法は?このチュートリアルでは、コンピューターとAndroidの携帯電話の詳細な手順、予備的な準備から運用プロセスまで、そして一般的な問題を解決するために、セサミのオープン交換インターフェイスを中国に簡単に切り替え、取引プラットフォームをすばやく開始するのに役立ちます。

C35の計算は、本質的に組み合わせ数学であり、5つの要素のうち3つから選択された組み合わせの数を表します。計算式はC53 = 5です! /(3! * 2!)。これは、ループで直接計算して効率を向上させ、オーバーフローを避けることができます。さらに、組み合わせの性質を理解し、効率的な計算方法をマスターすることは、確率統計、暗号化、アルゴリズム設計などの分野で多くの問題を解決するために重要です。

トップ10仮想通貨取引プラットフォーム2025:1。OKX、2。BINANCE、3。GATE.IO、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

Y軸位置Webアノテーション機能の適応アルゴリズムこの記事では、単語文書と同様の注釈関数、特に注釈間の間隔を扱う方法を実装する方法を探ります...

安全で信頼できるデジタル通貨プラットフォーム:1。OKX、2。Binance、3。Gate.io、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

推奨される安全な仮想通貨ソフトウェアアプリ:1。Okx、2。Binance、3。Gate.io、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。