0% found this document useful (1 vote)
2K views2 pages

Equilibrium Index in Array Solution

The document describes an equilibrium index of a zero-indexed array, which is an index P where the sum of elements with lower indices equals the sum of elements with higher indices. It provides an example array with equilibrium indices of 1, 3, and 7. The task is to write a function that returns any of the array's equilibrium indices, or -1 if none exist. The function must run in O(N) time and O(N) space.

Uploaded by

maspus
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (1 vote)
2K views2 pages

Equilibrium Index in Array Solution

The document describes an equilibrium index of a zero-indexed array, which is an index P where the sum of elements with lower indices equals the sum of elements with higher indices. It provides an example array with equilibrium indices of 1, 3, and 7. The task is to write a function that returns any of the array's equilibrium indices, or -1 if none exist. The function must run in O(N) time and O(N) space.

Uploaded by

maspus
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
  • Equilibrium Index Problem
  • Solution Implementation

A zero-indexed array A consisting of N integers is given.

An equilibrium index of
this array is any integer P such that 0 = P < N and the sum of elements of lower
indices is equal to the sum of elements of higher indices, i.e.
A[0] + A[1] + ... + A[P-1] = A[P+1] + ... + A[N-2] + A[N-1].
Sum of zero elements is assumed to be equal to 0. This can happen if P = 0 or if P
= N-1.

For example, consider the following array A consisting of N = 8 elements:

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 is an equilibrium index of this array, because:

A[0] = -1 = A[2] + A[3] + A[4] + A[5] + A[6] + A[7]


P = 3 is an equilibrium index of this array, because:

A[0] + A[1] + A[2] = -2 = A[4] + A[5] + A[6] + A[7]


P = 7 is also an equilibrium index, because:

A[0] + A[1] + A[2] + A[3] + A[4] + A[5] + A[6] = 0


and there are no elements with indices greater than 7.

P = 8 is not an equilibrium index, because it does not fulfill the condition 0 = P


< N.

Write a function:

class Solution { public int solution(int[] A); }

that, given a zero-indexed array A consisting of N integers, returns any of its


equilibrium indices. The function should return -1 if no equilibrium index exists.

For example, given array A shown above, the function may return 1, 3 or 7, as
explained above.

Assume that:

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].
Complexity:

expected worst-case time complexity is O(N);


expected worst-case space complexity is O(N), beyond input storage (not counting
the storage required for input arguments).
Elements of input arrays can be modified.

///jawaban dengan C# //

using System;

// you can also use other imports, for example:


// using [Link];

// you can write to stdout for debugging purposes, e.g.

// [Link]("this is a debug message");

class Solution {
public int solution(int[] A)
{
// write your code in C# 6.0 with .NET 4.5 (Mono)

// First calculate sum of complete array as `sum_right`

long sum_right = 0;

for (int i = 0; i < [Link]; 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 < [Link]; p++)

sum_left += p - 1 < 0 ? 0: A[p-1];

sum_right -= A[p];

if (sum_left == sum_right)

return p;

return -1;

A zero-indexed array A consisting of N integers is given. An equilibrium index of 
this array is any integer P such that 0 =
// using System.Collections.Generic;
// you can write to stdout for debugging purposes, e.g.
// Console.WriteLine("this is a

You might also like