擅长:python、mysql、java
<p>我这样做:</p>
<pre><code>a = [0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1]
i = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
x = []
for idx,val in enumerate(a):
if val==0: x.append(i[idx])
elif val==1: x.append(x[-1])
</code></pre>
<p>它是一个只在列表中迭代一次的循环,因此没有嵌套循环或递归。这样的话,时间成本将是O(N),N是<code>a</code>的长度</p>