記事のディレクトリ:
- タイトル
- スクリプトとノート
- スクリプトロジック
- 2つのスクリプトとノート
- スクリプトロジック
トピック:
整数配列NUMSと目標値の目標を考えると、配列内の2つの整数の目標値を特定し、その配列の添字に戻るにお願いします。
あなたは、各入力が一つだけ答えに対応することを想定することができます。ただし、同じ配列要素を再使用することはできません。
例:
所与NUMS = [2、7、11、15]、目標= 9
なぜならNUMS [0] + NUMS [1 ] = 2 + 7 = 9
返される[0,1]
そして、スクリプトステップの注意事項
クラス溶液:#クラスを定義すると呼ばれる DEF > - twoSum(INT:リスト[INT]、ターゲットセルフ、NUMS)リスト[INT]:ここで#1 leetcode出力フォーマット所与 Zidian = {#}が定義します空の辞書 のための I、J に列挙(NUMS):リスト・トラバーサルNUMSにおける要素の列挙のため#列挙方法は、iがリスト要素のインデックス番号であり、jはiがリスト要素対応するインデックス番号であり、 K =ターゲット- J番号の使用及び前記別の加数の加算値を減算した値が得られた IF KのにZidian:#キーは、キー値Kかどうかを確認するために辞書を横断する リターン(I、zidian.get(K))IF#キー付き値k、要素及びkに対応する辞書インデックスキー値のリストを、現在戻り Zidianを[J] =辞書にはケースI#キー値kは、現在の要素の要素がリストに通されていない場合は、キーインデックス値は辞書に追加される 結果 = クラスの作成ソリューション()ソリューション# 印刷を(このメソッドは、値を返すためresult.twoSum)#値がプリントアウトすることができ、クラスのメソッドを呼び出します
[処理ロジック]
- このスクリプトの処理ロジックは、辞書つまり、インデックス番号の要素のリストに格納されているに新しいデータレコードと横断要素の値を生成することです
- リストトラバーサルプロセスは、辞書を横断するので、辞書のキーが繰り返されていないので
- 人気の用語はこれです:開始バケットは、空であるデータのバケツを取るし続け、比較のために、ターゲットの比の値が見つからない場合にバケツを置き、その後、次の位置合わせのためになります
ステップ2つのスクリプトとコメント
クラスソリューション:#同上 DEF twoSum(セルフ、NUMS:一覧の[int]は、ターゲットます。int) - > リストは、[INT]:#同上 用 I における範囲(0、lenは(NUMS)):#0とリスト要素Aなる数字列横断 AAを = NUMS [i]がリスト要素#取得し BB =目標- 別の値のAA#合計値 のための J でレンジ(I + 1。 、(NUMS)LEN):#リストの残りの要素非繰り返しトラバース IF BB == NUMSは[J]は:数の他の値がある場合は#に等しい リターン(I、J)#は、インデックス番号2の数を返します。
スクリプトロジック
- このスクリプトは、思考のアプローチを使用することであるという点で人気がある:目標値と一致かどうかを確認するために値の残りの部分と、リスト内の最初の数を合計します
- 合意された場合は、インデックス番号2は、それが取得する価値があります
- そうでない場合、最初の値を破棄し、第二の値は、全ての値または適切な値を介して、残りの実測値(最初の値を含まない)、アップこれまで満たさと比較されます