
>>> a=[1,2,3,4,5,7,8,9,10]>>> sum(xrange(a[0],a[-1]+1)) - sum(a)6
>>> a[-1]*(a[-1] + a[0]) / 2 - sum(a)6
对于可能缺少多个数字的一般情况,可以制定O(n)方法。
>>> a=[1,2,3,4,7,8,10]>>> from itertools import imap, chain>>> from operator import sub>>> print list(chain.from_iterable((a[i] + d for d in xrange(1, diff)) for i, diff in enumerate(imap(sub, a[1:], a)) if diff > 1))[5, 6, 9]
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)