javascript - 次のアルゴリズム コードを説明してください
習慣沉默
習慣沉默 2017-07-05 10:41:45
0
1
909

はこのアルゴリズムに関するコードで、JavaScript で実装されていますが、以下のアルゴリズムがわかりません。神に説明を求めてください。

リーリー
習慣沉默
習慣沉默

全員に返信(1)
淡淡烟草味

質問者はサンプルを使用してコードを読んでみることができます。私の意見は次のとおりです:

たとえば、スクリーンショットの例をクリックしてください:

for ループは主に最初のパラメーター配列を走査し、その後 2 つの重要なステップを実行します。

最初に if の後の文を見てみましょう exist[nums[i]] = i + 1; この文はループごとに実行されます。たとえば、最初に通過した数値は 2 (i=0) であるため、exist は保存されます。このようなキーと値のペアは、1 つのループの後、次のようになります:
array 次に、「要素値」: 「配列インデックス + 1」のキーと値のペアの辞書。

次に、if での判定を見てみましょう。もちろん、for ループで i=0 のとき、exist はまだキーと値のペアを注入しておらず、if 式は false です

しかし、i=1 の場合、exist[target-nums[1]] は、exist[9-7] =exist[2] を意味します。これは、i=0 のときに挿入された、exist の最初のキーと値のペアではないでしょうか? ?したがって、対応するキーと値のペアの値 (実際には元の配列内の元の値のインデックス + 1) を ret に保存し、次に現在の i+1 を ret に保存します。最後に、ループが完了したら、 ret に戻ると、 [1,2] が得られました ps: 質問者が示した例に対する答えは、コードと矛盾しています。

概要: このアルゴリズムの核心は、オブジェクトのexistを使用して走査された配列要素を格納し、target-nums[i]を使用して間接的にexistを使用して、配列された要素の中に条件を満たす要素があるかどうかを確認することです。配列内で走査されています。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!