題目:
給一個整數數組,找到兩個數使得他們的和等於一個給定的數 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]
這裏就忽略了返回的兩個值不能相等。
於是改進了代碼,就通過了。
總體來說其實不算難,沒啥高興的,今天就這樣吧。晚安。