当前位置: 首页 > 知识库问答 >
问题:

给出了一个零索引数组

曹高阳
2023-03-14

给出了一个由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.

共有3个答案

束雅达
2023-03-14

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;
}
杭胜
2023-03-14

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;


    }
}
洪德寿
2023-03-14

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中元素的索引: 我该如何选择值一个指向由乙,即: 问题答案: 你可以使用 一个人也可以使用 样品运行