动态规划 求长度为K的子序列累加和为偶数的数量

76 阅读1分钟

题目

总长度为n的数组中,所有长度为k的子序列里,有多少子序列的和为偶数

  • 递归模型为从左往右模型,当前位置要还是不要
function main(arr, k) {
  return process(arr, 0, k, 0);

  function process(arr, index, rest, sum) {
    if (index === arr.length) {
      // 如果满足长度条件且累加和偶数
      return rest === 0 && (sum & 1) === 0 ? 1 : 0;
    }

    return (
      process(arr, index + 1, rest, sum) +
      process(arr, index + 1, rest - 1, sum + arr[index])
    );
  }
}

console.log(13 & 1);