前端算法之N个数字和为M问题
给定一个不重复的正整数集合,从中取N个数字,使得他们的和为M,写一个函数,求这个N个数字。如有多个,只需要返回一个。
function sumN(arr, n, m, i = 0, result = []) {
if (m === 0) return result
if (i === arr.length || n === 0) return null
return sumN(arr, n - 1, m - arr[i], i + 1, result.concat(arr[i])) || sumN(arr, n, m, i + 1, result)
}
console.log(sumN([1, 2, 3, 4, 5], 3, 9))

浙公网安备 33010602011771号