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

posted @ 2015-01-13 09:02  eagle_chen  阅读(257)  评论(0)    收藏  举报