|
|
|
|
复制本帖HTML代码
|
高亮:
今天贴
X 昨天贴
X 前天贴
X |
从List开始iterate, 每个数要不就是包含在当前group, 要不就是在下一个group, 如果在下一group就把剩下的group-1
随便写的,不知道对不对,只测了楼主那个case是对的。原谅我放飞自我的魔性变量名
import sys
m = 9
n = 3
mylist = list(range(1, m+1))
my_dict = {} #可以memonize 省很多重复,只要记下参数和对应结果,懒得写了。。。
def min_max_sum(current, index, no_of_group):
print(current, index, no_of_group)
if(no_of_group==1):
return sum(mylist[index:])
elif (index == m-1):
if(no_of_group>1):
return sys.maxsize
else:
current.append(mylist[index])
max_sum_1 = max(min_max_sum([], index+1, no_of_group-1), sum(current))
max_sum_2 = min_max_sum(current, index+1, no_of_group)
return min(max_sum_1,max_sum_2)
print(min_max_sum([], 0, n))
.
|
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法! |
|
|