在 Java 中获取特定和的方法
问题
我们需要编写一个 JavaScript 函数,此函数将数组 of Integers arr 作为第一个参数和单个整数 target 作为第二个参数。
对于数组中的每个整数,我们的函数可以给它分配“+”或“-”。
我们的函数应找出使数组的整数总和等于目标和 target 的“+”、“-”分配的总数。
例如,如果输入函数的内容为 −
const arr = [1, 1, 1, 1, 1]; const target = 3;
则输出应为 −
const output = 5;
输出说明
因为 5 种方式为 −
-1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3
示例
其代码如下 −
const arr = [1, 1, 1, 1, 1];
const target = 3;
const waysToSum = (arr = [], target = 1) => {
const map = {};
const find = (arr, target, i) => {
let val = i + '->' + target;
if(map[val] !== undefined){
return map[val];
};
if(i === 0){
if (target === 0 && arr[0] === 0) { return 2 }
return arr[0] === target || arr[0] === -target ? 1 : 0
};
map[val] = find(arr, target + arr[i], i - 1) + find(arr, target - arr[i], i - 1);
return map[val]
};
return find(arr, target, arr.length-1)
};
console.log(waysToSum(arr, target));输出
并且控制台中的输出将为 −
5
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP