mean list
把一个List拆分成2个,使拆分后的List 差最小。
如 [1,2,3,4] 拆分成[1,4] [2,3].
思路:先把List排序,
1.得到最大big和次大small,
2.对剩下的List[:-2] 拆分成sBig, sSmall
3 把big加到sSmall, small 加到sBig
4根据sum(sSmall) 和 sum(sBig) 返回
Python实现:
def mean(sorted_list):
if not sorted_list:
return ([], [])
big, small = sorted_list[-1], sorted_list[-2]
bList, sList = mean(sorted_list[:-2])
bList.append(small)
sList.append(big)
bSum = sum(bList)
sSum = sum(sList)
if bSum > sSum:
return bList, sList
else:
return sList, bList

浙公网安备 33010602011771号