擅长:python、mysql、java
<p>这个怎么样?你知道吗</p>
<pre><code>def next_id(arr):
arr = sorted(set(arr))
# arr = sorted([x for x in set(arr) if type(x) is int]) # If you want a more tolerance
if arr[0] != 0:
return 0
for i, v in enumerate(arr):
if i != v:
return i
return i+1
</code></pre>
<p>它只是遍历每个位置,如果不匹配则返回索引。我添加了set(),以防重复。你知道吗</p>
<pre><code>arr[0] = 0
arr[1] = 1
arr[2] = 2
arr[3] = 3
arr[4] = 5 # => UH OH! Return 4
</code></pre>
<p>所以:</p>
<pre><code>print(next_id([0,1,2,3,5])) # => 4
print(next_id([0,1,2,3,4,5])) # => 6
print(next_id([7,1,3,7,1,4,2,3,4,7,0,9,9,2,3,7,0,9,6,5])) # => 8
</code></pre>