@ lurii Mykhailov.
try your algorithm with this:
int[] array = new int[] {3,-2,-1,0};
It seems it does not work... Don't forget we may have negative values.
Anónimo
16 feb 2015
int [] newArr = new int[array.length];
int sum;
newArr[0] = array[0];
for(int i = 1 ; i =0 ; j--){
sum += array[j];
if(sum == newArray[j-2]){
return j-1;
}
}
Anónimo
15 abr 2015
public int middleIndex(int[] num) {
if(num.length==1) return 0;
int[] sum = new int[num.length];
sum[0] = num[0];
for(int i=1;i
Anónimo
27 ene 2015
public static int getIndexOfEqualSum(int []a)
{
int index = -1; //not found
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum += a[i];
}
int tempSum = 0;
for (int i = 0; i < a.length; i++) {
int val = a[i];
sum -= val;
if (sum == tempSum) {
return i;
}
tempSum += val;
}
return index;
}
1
Anónimo
2 feb 2015
Here is my implementation, should be a bit faster if the required element is somewhere in the middle:
public static int getIndexOfEqualSumMy(int[] a) {
int leftSum = a[0];
int j = a.length - 1;
int rightSum = a[j];
for (int i = 0; i != j;) {
if (leftSum < rightSum) {
i++;
leftSum += a[i];
} else {
j--;
rightSum += a[j];
}
}
if (leftSum != rightSum) {
return -1;
}
return j;
}