11min,测试先行,线上一次通过
本地
1.死循环,tmp没有重新加
2.不含两个数字时报错,这时要保持 small<big
总的来说还可以,体现了测试样例先行的重要性
class Solution:
def FindNumbersWithSum(self, array, sum):
if len(array)<2:return []
small,big=0,len(array)-1
tmp=array[small]+array[big]
while small<big: #原来是tmp!=sum
if tmp==sum:return [array[small],array[big]]
if tmp<sum:small+=1
else:big-=1
tmp=array[small]+array[big] #死循环,tmp没有重新加
return []
if __name__ == '__main__':
t=Solution()
print(t.FindNumbersWithSum([1,2,3,4],3))
print(t.FindNumbersWithSum([-1,1,3,5],4))
print(t.FindNumbersWithSum([-1,1,3,5],88))
print(t.FindNumbersWithSum([1,2,5,6],7))
print(t.FindNumbersWithSum([1,2],7))
print(t.FindNumbersWithSum([],7))
print(t.FindNumbersWithSum([],-5))












网友评论