Leetcode_01二つの数字[および]

記事のディレクトリ:

  •  タイトル
  • スクリプトとノート
    • スクリプトロジック
  • 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)#値がプリントアウトすることができ、クラスのメソッドを呼び出します

[処理ロジック]

  1. このスクリプトの処理ロジックは、辞書つまり、インデックス番号の要素のリストに格納されているに新しいデータレコードと横断要素の値を生成することです
  2. リストトラバーサルプロセスは、辞書を横断するので、辞書のキーが繰り返されていないので
  3. 人気の用語はこれです:開始バケットは、空であるデータのバケツを取るし続け、比較のために、ターゲットの比の値が見つからない場合にバケツを置き、その後、次の位置合わせのためになります

 

ステップ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の数を返します。

スクリプトロジック

  1.  このスクリプトは、思考のアプローチを使用することであるという点で人気がある:目標値と一致かどうかを確認するために値の残りの部分と、リスト内の最初の数を合計します
  2. 合意された場合は、インデックス番号2は、それが取得する価値があります
  3. そうでない場合、最初の値を破棄し、第二の値は、全ての値または適切な値を介して、残りの実測値(最初の値を含まない)、アップこれまで満たさと比較されます

 

おすすめ

転載: www.cnblogs.com/mailong/p/11992842.html