想改进这个问题吗?更新问题,让它只通过编辑这篇文章来关注一个问题。
给出了一个由N个整数组成的零索引数组A。此数组的平衡指数是任意整数P,因此0≤ P
例如,考虑以下由N = 8个元素组成的数组A:
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;
}
用c#100%得分
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% - Java
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个整数组成的零索引数组。这个数组的平衡指数是任意整数P,0≤ P 例如,考虑下面的数组A,由n=8个元素组成: P=1是这个数组的平衡指数,因为: P=3是该数组的平衡指数,因为: P=7也是一个均衡指数,因为: 没有索引大于7的元素。 P=8不是平衡指数,因为它不满足条件0≤ P 现在我要写一个函数: 给定一个由N个整数组成的零索引数组a,它返回其任何平衡索引。函数应该返回−1如果
如果某些数组索引不能配对,我将如何找到唯一正整数数组的最大和? 例如,我们有一个数组:[8,2,1,3,9,4] 索引(0,4)和(4,5)处的元素彼此不喜欢。 在这种情况下,最大和为:8 2 1 3 4=18 假设这是100个条目的规模和多达一半的约束,您将如何处理这个问题? 是否有一个像图形这样的数据结构是有用的还是有一些DP?我主要关心的是高效的运行时。
为什么我不能得到数组中给定对象的索引? 期望的结果显然是2…
问题内容: 简要地说:存在类似的问题,最佳答案建议使用。我需要同样的东西,但是需要一个矩阵。 我有两个数组: 它们共同构成应增加的索引: 我想得到这个矩阵: 矩阵将很小(例如5×5),索引的数量将很大(大约10 ^ 3或10 ^ 5)。 那么,有什么比-loop更好(更快)的东西吗? 问题答案: 您仍然可以使用。关键是要转换和成扁平状索引的单一一维数组。 如果矩阵是X ,你可以申请到,构建从结果矩
我想用Javascript实现合并排序作为一种学习经验。我有mergeSort(unsortedArray)函数,它接受一个未经排序的数组,并使用合并排序策略对其进行排序。mergeSort()调用merge(leftArray,rightArray),后者将两个数组合并在一起,得到一个数组。 我认为问题出在merge()函数上。在数组[8,8,7,5,4,6,3,2,1,5,9,8,7,6,5,
尝试计算给定数字的阶乘中尾随零的数量有点困难。这是Codewars-无法让我的通过的挑战之一。 我想我在这里走错了路,可能还有更优雅的红宝石路。这是我迄今为止所做的。