【发布时间】:2010-11-11 01:36:33
【问题描述】:
使用递归,找到一个索引,将数组分成两部分,使两部分的和相等。
Cut 意思是像用刀一样切割。结果索引 结果的所有单元格的总和。任何单元格都不能被遗漏或成为双方的一部分。
数组包含任意整数(即正数、负数和零)。
如果没有这样的索引返回-1。
不允许分配堆对象。
你必须一次性完成。
您必须使用递归(即不能使用循环结构)。
可以是任何语言或伪代码。
忘记添加了:不能修改数组
【问题讨论】:
-
如何定义递归中的“单程”?你的意思是每个节点只会被触摸一次?
-
是的,每个节点只能读取一次(数组是RO,看问题的更新版本)
-
如果数组的总数是奇数怎么办?还是假设不会?
-
@bill:任意整数(正数/负数/零)
-
@victor 可能很奇怪。例如这个数组:[1, 1, 2] 有奇数个元素并且有一个解