擅长:python、mysql、java
<p>另一种解决方案:</p>
<pre><code>def my_func(a):
next_i = next((i for i in range(len(a)-1) if (a[i] - a[i+1]) >=0), None)
while next_i is not None:
a = a[:next_i] + [a[next_i] - a[next_i+1]] + a[next_i+2:]
next_i = next((i for i in range(len(a)-1) if (a[i] - a[i+1]) >=0), None)
return a
print(my_func(a=[1, 10, 7, 3, 2]))
#[1, 2]
print(my_func(a=[3, 2, 1]))
#[0]
</code></pre>
<p>但是,这比@bphi的解决方案稍慢:</p>
^{pr2}$