LeetCode:二つの合計

トピック:

整数の配列を考えると、2つの数のリターン指数は、彼らが特定のターゲットまで追加するように。

あなたは、各入力が持っているであろうと仮定してもよい  、正確に  一つの解決策を、あなたが利用することはできません  同じ  二度の要素を。

例:

所与NUMS = [2、7、11、15]、目標= 9、

ためNUMS [0] + NUMS [1] = 2 + 7 = 9、
リターン[0、1]。

ソリューション:
1  方法:差分値が激しい溶液避けるために、レコードの値にするためにトラバースキー辞書、対応するインデックスNUMSの値として格納されている
2  クラスソリューション:
 3      DEF twoSum(セルフ、NUMS:リスト[ INT]、ターゲット:INT) - > リスト[INT]:
 4          _dict = {}
 5。         ための I における範囲(LEN(NUMS))
 。6              remainning =ターゲット- NUMS [I]
 。7              IF remainning _dict:
 8。                 リターン_dict [ remainning]、I
 。9              _dict [NUMS [I] = I
 10                 
方法2:使用して辞書にNUMSを列挙し、共感の方法
クラスのソリューション:
     DEF twoSum(セルフ、NUMS、ターゲット):
         "" " タイプのNUMS:リスト[INT] 
        :int型:タイプのターゲット
        :RTYPE:リスト[ INT] 
        "" " 
        H = {}
         のために I、NUM 列挙(NUMS):
            N- =ターゲット- NUM
             IF N- ません H:
                H [NUM] = I
             ほかリターン [H [N-]、I]

 


おすすめ

転載: www.cnblogs.com/noodleman/p/11830589.html