我有一个清单:
> S = [1,8,93,3,8]
Run Code Online (Sandbox Code Playgroud)
我需要选择一个不在列表中但在最大值范围内的随机数。我更关心时间复杂度 O(n)。S 可能是一个相当大的列表。
import random
S=[1,8,93,3,8]
m = max(S)
for x in xrange(m):
rand = random.randint(1,m)
if rand not in S:
print rand
else:
print "Number - %d found in the array" % rand
break
Run Code Online (Sandbox Code Playgroud)
我没有尝试列表理解