我有一个编码蝙蝠挑战,我需要完成,并已经在这里寻找解决方案或任何其他建议,并且找不到任何建议。
以下是挑战: "平衡点"是可以拆分值列表数组的点,以便一侧的数字总和等于另一侧的数字之和。 (平衡点包含在"第二个"子列表中。)给定一个非空的整数列表,如果给定列表没有平衡点,则返回平衡点,或-1。 / p>
balance_point([1, 1, 1, 2, 1]) → 3
balance_point([2, 1, 1, 2, 1]) → -1
balance_point([10, 10]) → 1
我想将列表分成两部分并对每个部分求和,然后比较总和。但是,我怎么知道在哪里拆分列表?如何从左侧和右侧对这些数字求和?
任何帮助将不胜感激!
答案 0 :(得分:0)
if s R < s L AND R-1 大于 L ,然后添加值在索引 R-1 到s R 并将 R 设置为 R-1
if s L < s R AND L + 1 小于 R ,然后添加值在索引 L + 1 到s L 并将 L 设置为 L + 1
如果 s L = s R AND L + 1 小于 R-1 ,将 R 设置为 R-1 并设置 L 到 L + 1 ,然后重复步骤1-2
重复步骤1-3,直到所有条件都为假
如果s L = s R ,则返回 R ,否则返回 -1