擅长:python、mysql、java
<p>假设您的输入格式为1..N</p>
<p>然后,代码将执行N次迭代,每次迭代都可能检查列表的整个长度,以查看j的当前值是否在列表中。N检查长度N的整个列表的迭代得到N*N=N^2。你知道吗</p>
<p>这是一个最坏的例子,但是我们不知道典型的输入应该是什么。也许你知道,也许你不知道。一个简单且最坏的最佳方法是对列表进行排序,然后找出列表中项目之间的第一个“间隔”。像这样:</p>
<pre><code>def my_search(A):
A = [i for i in sorted(A) if i > 0] # Gets rid of <1 values as well
min_pos_val = 1
for val in A:
if val > min_pos_val:
return min_pos_val
min_pos_val += 1
return min_pos_val
</code></pre>