如何查找最小化i
的索引abs(sum(A[:i])-sum(A[i:]))
。
示例:
ex1: A = [1, 2, 3, 4, 5], i = 3
ex2: A = [1, 2, 3], i = 2
ex3: A = [9, 1, 2, 3, 4], i = 1
ex4: A = [1, 2, 3, 4], i = 3
答案 0 :(得分:2)
让我们用S i 表示值abs(sum(A [:i]) - sum(A [i:]))。如果你知道所有的价值,你可以找到最低价值,对吗?做一个简单的迭代并找到这个值。
现在的问题是如何计算值S i 。事实证明这并不是很难:首先计算所有元素SUM的总和。然后从左向右迭代并累加当前位置左侧的所有元素的总和(表示左 i )。 S i = abs((SUM - left i ) - left i )。
所以你需要做的是对输入进行两次迭代 - 一次计算总和,第二次找到值S i (并找到它们的最小值)。