【Leetcode】Pythonは2つの数の和を実現

2155 ワード

整数配列とターゲット値を指定し、配列とターゲット値の2つの数を見つけます.
入力ごとに1つの答えしか対応せず、同じ要素が再利用できないと仮定できます.
例:
与えられたnums=[2,7,11,15],target=9
nums[0]+nums[1]=2+7=9なので[0,1]を返します
ここではenumerate()も使えますが、もっと便利です.
class Solution(object):
    def twoSum(self, nums, target):
        #       
        for i in range(len(nums)):
            # target             ,              
            num2 = target - nums[i]
            #          
            if num2 in nums:
                #     ,   ,          ,     
                j = nums.index(num2)
                #           ,  return,    
                if i != j:
                    #    if  
                    return [i, j] if i < j else [j, i]

テスト例:
    solu = Solution()
    print(solu.twoSum([2, 7, 11, 15], 9))
    print(solu.twoSum([3, 3, 4], 6))
    print(solu.twoSum([3, 2, 4], 6))