1
var canPartitionKSubsets = function (nums, k) {2
const sum = nums.reduce((sum, num) => sum + num);3
const divide = sum / k;4
if (!Number.isInteger(divide)) return false;5
const subsets = Array(k).fill(0);6
const dfs = (index = 0) => {7
if (index >= nums.length) return true;8
const visited = new Set();9
const num = nums[index];11
for (let sub = 0; sub < k; sub++) {12
const subset = subsets[sub];13
if (visited.has(subset) || subset + num > divide) continue;17
if (dfs(index + 1)) return true;23
nums.sort((a, b) => b - a);