<p>Given an integer array <code>nums</code> and an integer <code>k</code>, return <code>true</code> if it is possible to divide this array into <code>k</code> non-empty subsets whose sums are all equal.</p> <p> </p> <p><strong>Example 1:</strong></p> <pre> <strong>Input:</strong> nums = [4,3,2,3,5,2,1], k = 4 <strong>Output:</strong> true <strong>Explanation:</strong> It is possible to divide it into 4 subsets (5), (1, 4), (2,3), (2,3) with equal sums. </pre> <p><strong>Example 2:</strong></p> <pre> <strong>Input:</strong> nums = [1,2,3,4], k = 3 <strong>Output:</strong> false </pre> <p> </p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= k <= nums.length <= 16</code></li> <li><code>1 <= nums[i] <= 10<sup>4</sup></code></li> <li>The frequency of each element is in the range <code>[1, 4]</code>.</li> </ul>