题目
给定一个数字数组,你的任务是将这些数字分成若干个非空子集,使得每个子集内数字的和都相同。请找出所有可能的子集方案中,子集的数字和的最小值是多少?
输出一个整数,表示所有可能的子集方案中,子集的数字和的最小值。
示例:
输入:
7
4 3 2 3 5 2 1
输出:
5
解释:
给定数组可以分为以下两种方式:
分为4个子集:[5],[1,4],[2,3] 和 [2,3]。每个子集的数字和为5。
分为2个子集:[5, 1, 4] 和 [2, 3, 2, 3]。每个子集的数字和为10。
在这两种方案中,子集的数字和的最小值为5。
代码
def canPartitionKSubsets(nums, k, total