Partition to K Equal Sum Subsets
Given an array of integers nums and a positive integer k, find whether it's possible to divide this array into k non-empty subsets whose sums are all equal.
Example 1:
Input: nums = [4, 3, 2, 3, 5, 2, 1], k = 4
Output: True
Explanation: It's possible to divide it into 4 subsets (5), (1, 4), (2,3), (2,3) with equal sums.Note:
1 <= k <= len(nums) <= 16.
0 < nums[i] < 10000.
看code吧,不是很会写,时间复杂度这个题所有解法都是指数型的 很高
时间复杂度:O(k ^ N),其中N时nums的长度,k是子集数。如果采用了优化方案a,则复杂度至少降到O(k ^ (N - k) * k!),因为一开始会跳过很多和为0的子集,至少前k个元素的搜索次数不超过O(k!)。
空间复杂度:O(N), 用于函数调用栈。
Last updated