1. 概述
在本教程中,我们首先学习数组平衡索引的定义。随后,我们将编写一个方法来识别和定位它们。
2. 问题陈述
给定一个大小为N的零索引数组_A_,如果索引_i_满足左侧元素之和等于右侧元素之和,则该索引是平衡索引。 也就是说:A[0] + A[1] + … + A[i-1] = A[i+1] + A[i+2] + … + A[N-1]。特别是,对于数组的第一个和最后一个索引,其他元素的和应该是0。例如,考虑数组_{1, -3, 0, 4, -5, 4, 0, 1, -2, -1}_:
- 1是一个平衡索引,因为A[0] = 1且A[2] + A[3] + A[4] + A[5] + A[6] + A[7] + A[8] + A[9] = 0 + 4 + (-5) + 4 + 0 + 1 + (-2) + (-1) = 1
- 4也是一个平衡索引,因为A[0] + A[1] + A[2] + A[3] = 1 + (-3) + 0 + 4 = 2且A[5] + A[6] + A[7] + A[8] + A[9] = 4 + 0 + 1 + (-2) + (-1) = 2
- A[0] + A[1] + A[2] + A[3] + A[4] + A[5] + A[6] + A[7] + A[8] = 1 + (-3) + 0 + 4 + (-5) + 4 + 0 + 1 + (-2) = 0且没有索引大于9的元素,所以9也是这个数组的平衡索引
- 另一方面,5不是平衡索引,因为A[0] + A[1] + A[2] + A[3] + A[4] = 1 + (-3) + 0 + 4 + (-5) = -3,而A[6] + A[7] + A[8] + A[9] = 0 + 1 + (-2) + (-1) = -2
大约 4 分钟