LeetCode#698 Partition to K Equal Sum Subsets(week19)
2018-01-13 14:49
585 查看
week19
题目
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.Note:
1 <= k <= len(nums) <= 16.
0 < nums[i] < 10000.
原题地址:https://leetcode.com/problems/partition-to-k-equal-sum-subsets/description/
代码
class Solution { public: bool f = false; bool canPartitionKSubsets(vector<int>& nums, int k) { int sum = 0; for (int i = 0; i < nums.size(); ++i) { sum += nums[i]; } if (sum % k != 0) { return false; } int subsum = sum / k; for (int i = 0; i < nums.size(); ++i) { if (nums[i] > subsum) { return false; } } sort(nums.begin(), nums.end()); reverse(nums.begin(), nums.end()); vector<int> res(k, 0); dfs(nums, 0, res, subsum); return f; } void dfs(vector<int>& nums, int pos, vector<int>& res, int subsum) { if (f) { return; } if (pos == nums.size()) { bool judge = true; for (int i = 0; i < res.size(); ++i) { if (res[i] != subsum) { judge = false; return; } } if (judge) { f = true; } return; } for (int i = 0; i < res.size(); ++i) { if (res[i] + nums[pos] <= subsum) { res[i] += nums[pos]; dfs(nums, pos + 1, res, subsum); res[i] -= nums[pos]; } } } };
相关文章推荐
- 698. Partition to K Equal Sum Subsets
- 698. Partition to K Equal Sum Subsets
- 698. Partition to K Equal Sum Subsets(M)
- LeetCode Partition to K Equal Sum Subsets
- 698. Partition to K Equal Sum Subsets
- 698. Partition to K Equal Sum Subsets
- LeetCode算法问题12 —— Partition to K Equal Sum Subsets
- 698. Partition to K Equal Sum Subsets
- 698 Partition to K Equal Sum Subsets
- Partition to K Equal Sum Subsets
- 698. Partition to K Equal Sum Subsets
- LeetCoe 698 (Partition to K Equal Sum Subsets)
- 698[Medium]: Partition to K Equal Sum Subsets
- [LeetCode] Partition to K Equal Sum Subsets 分割K个等和的子集
- Leetcode | Partition to K Equal Sum Subsets
- Partition to K Equal Sum Subsets
- 698. Partition to K Equal Sum Subsets
- Partition to K Equal Sum Subsets
- 698. Partition to K Equal Sum Subsets
- LeetCode #698 Partition to K Equal Sum Subsets