擅长:python、mysql、java
<p>您可以这样做:</p>
<pre><code>def sumZero_refactor(arr, p1 = 0, p2 = None):
if p2 == None:
p2 = len(arr) - 1
while p1 < p2:
if arr[p1] + arr[p2] == 0:
return [arr[p1], arr[p2]]
elif arr[p1] + arr[p2] < 0:
p1 += 1
else:
p2 -= 1
print(sumZero_refactor([-3, -2, -1, 0, 1, 2, 3]))
print(sumZero_refactor([-2, 0, 1, 3]))
print(sumZero_refactor([1, 2, 3]))
print(sumZero_refactor([-8, -7, -5, -2, 0, 1, 2, 3, 4, 5, 6]))
</code></pre>
<p>这是因为<code>arr</code>尚未定义。但是,在函数代码中定义了<code>arr</code></p>