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 is possible to divide the array into 4 subsets: [5], [1,4], [2,3], [2,3] with equal sum 5.
Example 2:
Input: nums = [1,2,3,4], k = 3
Output: false
Explanation: The total sum is 10, which is not divisible by 3, so it is impossible to partition into 3 equal-sum subsets.
Example 3:
Input: nums = [2,2,2,2,3,4,5], k = 4
Output: false
Explanation: The total sum is 20 and each subset would need sum 5, but no valid partition of 4 subsets exists.
1 <= k <= nums.length <= 161 <= nums[i] <= 10⁴