# partition-to-k-equal-sum-subsets Try it on leetcode ## Description

Given an integer array nums and an integer k, return true if it is 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.

Example 2:

Input: nums = [1,2,3,4], k = 3
Output: false

 

Constraints:

## Solution(Python) ```Python class Solution(object): def canPartitionKSubsets(self, nums, k): nums.sort() target, rem = divmod(sum(nums), k) if rem or nums[-1] > target: return False dp = [False] * (1 << len(nums)) dp[0] = True total = [0] * (1 << len(nums)) for state in range(1 << len(nums)): if not dp[state]: continue for i, num in enumerate(nums): future = state | (1 << i) if state != future and not dp[future]: if num <= target - (total[state] % target): dp[future] = True total[future] = total[state] + num else: break return dp[-1] ```