Javascript Sherlock数组
问题陈述 Watson给Sherlock一个长度为N的数组。然后他让他确定数组中是否存在一个元素,使得数组左边的元素和右边的元素和相等。如果左/右没有元素,则认为总和为零。正式地说,找到一个i,这样, A1+A2…Ai−1=Ai+1+Ai+2…一个。 输入格式 第一行包含T,测试用例的数量。对于每个测试用例,第一行包含N,数组A中的元素数。每个测试用例的第二行包含N个空格分隔的整数,表示数组A 输出格式 对于每个测试用例,如果数组中存在一个元素,则打印YES,以便其左侧元素的和等于其右侧元素的和;否则,请打印号码 约束条件 一,≤T≤十, 一,≤N≤105 一,≤艾岛≤2×104 一,≤我≤N 样本输入 二, 三, 1 2 3 四, 1233 样本输出 没有 对 解释 对于第一个测试用例,不存在这样的索引。对于第二个测试用例 A[1]+A[2]=A[4] 因此,索引3满足给定条件。此解决方案的特点 some方法测试数组中的某个元素是否通过了所提供函数实现的测试 像这样的回调Javascript Sherlock数组,javascript,arrays,Javascript,Arrays,问题陈述 Watson给Sherlock一个长度为N的数组。然后他让他确定数组中是否存在一个元素,使得数组左边的元素和右边的元素和相等。如果左/右没有元素,则认为总和为零。正式地说,找到一个i,这样, A1+A2…Ai−1=Ai+1+Ai+2…一个。 输入格式 第一行包含T,测试用例的数量。对于每个测试用例,第一行包含N,数组A中的元素数。每个测试用例的第二行包含N个空格分隔的整数,表示数组A 输出格式 对于每个测试用例,如果数组中存在一个元素,则打印YES,以便其左侧元素的和等于其右侧元素的和
function isSherlock(_, i, a) {
function sum(i, n) {
return i < n ? a[i] + sum(i + 1, n) : 0;
}
return sum(0, i) === sum(i + 1, a.length);
}
其中只返回索引左侧和右侧之间的比较,以及它的递归函数
function sum(i, n) {
return i < n ? a[i] + sum(i + 1, n) : 0;
}
用于计算索引小于给定值的数组值
作为工作示例:
函数为herlock,i,a{
函数sumi,n{
返回i