Javascript Sherlock数组

Javascript Sherlock数组,javascript,arrays,Javascript,Arrays,问题陈述 Watson给Sherlock一个长度为N的数组。然后他让他确定数组中是否存在一个元素,使得数组左边的元素和右边的元素和相等。如果左/右没有元素,则认为总和为零。正式地说,找到一个i,这样, A1+A2…Ai−1=Ai+1+Ai+2…一个。 输入格式 第一行包含T,测试用例的数量。对于每个测试用例,第一行包含N,数组A中的元素数。每个测试用例的第二行包含N个空格分隔的整数,表示数组A 输出格式 对于每个测试用例,如果数组中存在一个元素,则打印YES,以便其左侧元素的和等于其右侧元素的和

问题陈述

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方法测试数组中的某个元素是否通过了所提供函数实现的测试

像这样的回调

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{ 返回idocument.write[1,2,3,3].someisSherlock+;你试过什么吗?看起来你只是复制粘贴了你的任务。StackOverflow不是一个“做我的家庭作业”网站。对我来说,它看起来像家庭作业,这显然不是这个网站的目的。这是为了帮助您解决代码问题,而不是为您编写代码。你自己有东西回来。我只是在谷歌上搜索,找到了几十个答案。事实上,你甚至都没有这样做。顺便说一句,问题绝对简单。除了基本的数组和循环,你不需要任何知识就可以得到二次解。不过,还有一个更聪明的线性方法。我们相信,一个优秀工程师的部分素质是编写代码