日常練習:lintcode56. 兩數之和

題目:

給一個整數數組,找到兩個數使得他們的和等於一個給定的數 target。
你需要實現的函數twoSum需要返回這兩個數的下標, 並且第一個下標小於第二個下標。注意這裏下標的範圍是 0 到 n-1。

注意事項

你可以假設只有一組答案。

樣例:

給出 numbers = [2, 7, 11, 15], target = 9, 返回 [0, 1].

上代碼:

class Solution:
    """
    @param: numbers: An array of Integer
    @param: target: target = numbers[index1] + numbers[index2]
    @return: [index1 + 1, index2 + 1] (index1 < index2)
    """
    def twoSum(self, numbers, target):
        # write your code here
        for i in range(len(numbers)):
            if(target-numbers[i] in numbers):
                a = numbers.index(target-numbers[i])
                if(i<a):
                    return [i,a]
                elif(i>a):
                    return [a,i]

這道題,我剛開始看了感覺不是特別複雜,有了一個大致的思路,直接就打來了,結果差點一遍過,忽略了一種情況,貼出來:
輸入:
[0,4,1,0]
0
理想輸出:
[0,3]
然而我的輸出:[0,0]
這裏就忽略了返回的兩個值不能相等。
於是改進了代碼,就通過了。

總體來說其實不算難,沒啥高興的,今天就這樣吧。晚安。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章