canPartition = (nums) => {
    const isEmpty = nums.length === 0;
    if (isEmpty) return false;

    const sum = getSum(nums);        /* Time O(N) */

    const isEven = ((sum % 2) === 0);
    if (!isEven) return false;

    const subSetSum = (sum >> 1);
    const tabu = initTabu(subSetSum);/*               | Space O(M) */

    search(nums, subSetSum, tabu);   /* Time O(N * M) | Space O(M) */

    return tabu[subSetSum];
}
DP - Bottom Up
Array - Tabulation
Time O(N * M) | Space O(M)
https://leetcode.com/problems/partition-equal-subset-sum/
@param {number[]} nums
@return {boolean}