将整数m划分为n个整数,使得到的整数之间的差值不超过1,结果按照升序排列。
例如输入55, 6,返回[9, 9, 9, 9, 9, 10]。
Python代码:
def splitInteger(m, n):
assert n > 0
quotient = m / n
remainder = m % n
if remainder > 0:
return [quotient] * (n - remainder) + [quotient + 1] * remainder
if remainder < 0:
return [quotient - 1] * -remainder + [quotient] * (n + remainder)
return [quotient] * n
下面列举了另一种实现方法:
def splitInteger(m, n):
assert n > 0
quotient = m / n
remainder = m % n
ans = [quotient] * n
for x in range(n - 1, -1, -1):
if remainder < 0:
ans[x] -= 1
remainder += 1
elif remainder > 0:
ans[x] += 1
remainder -= 1
else:
break
return ans
本文链接:http://bookshadow.com/weblog/2015/03/04/python-split-integer/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。
奶爸网 naiba.im 发布于 2015年3月7日 15:55 #
来也没什么,就是给你点点AD