给出了一个由N个整数组成的零索引数组。这个数组的平衡指数是任意整数P,0≤ P
例如,考虑下面的数组A,由n=8个元素组成:
A[0] = -1
A[1] = 3
A[2] = -4
A[3] = 5
A[4] = 1
A[5] = -6
A[6] = 2
A[7] = 1
P=1是这个数组的平衡指数,因为:
A[0] = −1 = A[2] + A[3] + A[4] + A[5] + A[6] + A[7]
P=3是该数组的平衡指数,因为:
A[0] + A[1] + A[2] = −2 = A[4] + A[5] + A[6] + A[7]
P=7也是一个均衡指数,因为:
A[0] + A[1] + A[2] + A[3] + A[4] + A[5] + A[6] = 0
没有索引大于7的元素。
P=8不是平衡指数,因为它不满足条件0≤ P
现在我要写一个函数:
int solution(int A[], int N);
给定一个由N个整数组成的零索引数组a,它返回其任何平衡索引。函数应该返回−1如果不存在平衡指数。
例如,给定上面显示的数组A,函数可能返回1、3或7,如上所述。
假定:
N is an integer within the range [0..100,000];
each element of array A is an integer within the range [−2,147,483,648..2,147,483,647].
这里有一些复杂性:
Elements of input arrays can be modified.
Javascript 100分
function solution(V) {
var sum = 0;
for (i=0; i < V.length; i++) {
sum += V[i];
}
var leftSum= 0;
var rightSum = 0;
for (j=0; j < V.length; j++) {
rightSum = sum - (leftSum + V[j]);
if(leftSum == rightSum) {
return j;
}
leftSum += V[j];
}
return -1;
}
100%得分为c#
using System;
class Solution {
public int solution(int[] A) {
// First calculate sum of complete array as `sum_right`
long sum_right = 0;
for (int i = 0; i < A.Length; i++)
{
sum_right += A[i];
}
// start calculating sum from left side (lower index) as `sum_left`
// in each iteration subtract A[i] from complete array sum - `sum_right`
long sum_left = 0;
for (int p = 0; p < A.Length; p++)
{
sum_left += p - 1 < 0 ? 0: A[p-1];
sum_right -= A[p];
if (sum_left == sum_right)
{
return p;
}
}
return -1;
}
}
100%爪哇
int solution(int A[], int N) {
long sum = 0;
for (int i = 0; i < A.length; i++) {
sum += (long) A[i];
}
long leftSum = 0;
long rightSum = 0;
for (int i = 0; i < A.length; i++) {
rightSum = sum - (leftSum + A[i]);
if (leftSum == rightSum) {
return i;
}
leftSum += A[i];
}
return -1;
}
}
想改进这个问题吗?更新问题,让它只通过编辑这篇文章来关注一个问题。 给出了一个由N个整数组成的零索引数组A。此数组的平衡指数是任意整数P,因此0≤ P 例如,考虑以下由N = 8个元素组成的数组A: P = 1是这个数组的平衡指数,因为: P=3是该数组的平衡指数,因为: P = 7也是一个均衡指数,因为: 并且没有索引大于7的元素。 P = 8 不是均衡指数,因为它不满足条件 0 ≤ P 现在我
我想用Javascript实现合并排序作为一种学习经验。我有mergeSort(unsortedArray)函数,它接受一个未经排序的数组,并使用合并排序策略对其进行排序。mergeSort()调用merge(leftArray,rightArray),后者将两个数组合并在一起,得到一个数组。 我认为问题出在merge()函数上。在数组[8,8,7,5,4,6,3,2,1,5,9,8,7,6,5,
问题内容: 我正在尝试使用以下方法对一些信息进行编码以读入机器学习模型 但是我收到一个错误,内容为 问题答案: 此错误是由以下原因引起的: 此处的索引超出范围很可能是因为您的数据集中的列少于19个,因此第18列不存在。您提供的以下代码根本不使用Y,因此您现在可以注释掉此行。
我正在尝试从多索引数据帧中仅使用一个索引来创建新的数据帧。 理想情况下,我想要这样的东西: 和: 基本上,我想删除除level之外的多索引的所有其他索引。有没有一个简单的方法可以做到这一点?
错误:任务“:app:CompileFlutterBuildDebug”执行失败。 进程“command”d:\flutter\bin\flutter.bat“已完成,退出值为非零%1 > 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获得完整的见解。
问题内容: 假设我有一个带有任意值的矩阵A: 矩阵B包含A中元素的索引: 我该如何选择值一个指向由乙,即: 问题答案: 你可以使用 一个人也可以使用 样品运行