1. 程式人生 > >求兩數之和

求兩數之和

題目:任意給出一個數字和陣列,要求在陣列中找出相加等於
這個數字的兩個元素,要求不能重複利用一個數組元素

python解答:

def consequence(TarVa, Values):
    ValidValues = []
    i = 0
    # 用於存放陣列中有效元素的元祖
    while i == 0:
        x = Values[0]
        y = TarVa - x
        if y == 0:
            ValidValues.append((x,))
            Values.pop(0)
            continue
        # 這裡考慮到第一個元素就等於目標值
        for p in range(1, len(Values)):
            if Values[p] == y:
                ValidValues.append((x, y))
                Values.pop(p)
                break
            # 這裡的break是必須的,不然會顯示下標超標的錯誤
        Values.pop(0)
        # 無論怎麼樣陣列中有沒有與第一個元素匹配的,我們在最後都要刪除第一個元素
        if not Values:
            return ValidValues

print(consequence(16, [1, 9, 6, 8,16, 8, 7, 13, 14]))