22Find the Equilibrium Index of an Array.
33
44Reference:
5- https://www.geeksforgeeks.org/equilibrium-index-of-an-array/
5+ https://www.geeksforgeeks.org/equilibrium-index-of-an-array
66
77Python doctest can be run with:
88
99python -m doctest -v equilibrium_index_in_array.py
1010
1111Given an array arr of size n, return an equilibrium index
12- if one exists, otherwise return -1.
12+ if one exists; otherwise return -1.
1313
1414An equilibrium index is an index where the sum of all
1515elements to the left equals the sum of all elements
1616to the right.
17-
18- Examples:
19-
20- >>> equilibrium_index([-7, 1, 5, 2, -4, 3, 0])
21- 3
22-
23- >>> equilibrium_index([1, 2, 3, 4, 5])
24- -1
25-
26- >>> equilibrium_index([1, 1, 1, 1, 1])
27- 2
28-
29- >>> equilibrium_index([2, 4, 6, 8, 10, 3])
30- -1
3117"""
3218
3319
3420def equilibrium_index (arr : list [int ]) -> int :
3521 """
3622 Find the first equilibrium index of an array.
37-
3823 Args:
3924 arr: The input array of integers.
40-
4125 Returns:
4226 The first equilibrium index, or -1 if none exists.
43-
4427 Examples:
4528 >>> equilibrium_index([])
4629 -1
47-
4830 >>> equilibrium_index([5])
4931 0
50-
5132 >>> equilibrium_index([-7, 1, 5, 2, -4, 3, 0])
5233 3
53-
34+ >>> equilibrium_index([2, 4, 6, 8, 10, 3])
35+ -1
5436 >>> equilibrium_index([1, 2, 3, 4, 5])
5537 -1
56-
5738 >>> equilibrium_index([1, 1, 1, 1, 1])
5839 2
59-
6040 >>> equilibrium_index([0, 0, 0])
6141 0
62-
6342 >>> equilibrium_index([-1, -1, -1])
6443 1
65-
6644 >>> equilibrium_index([1, -1, 0])
6745 2
6846
@@ -74,15 +52,11 @@ def equilibrium_index(arr: list[int]) -> int:
7452 """
7553 total_sum = sum (arr )
7654 left_sum = 0
77-
7855 for i , value in enumerate (arr ):
7956 total_sum -= value
80-
8157 if left_sum == total_sum :
8258 return i
83-
8459 left_sum += value
85-
8660 return - 1
8761
8862
0 commit comments