我遇到了一些这样的问题,但从来没有真正知道处理它的最佳方法。如果我正在编写一个递归函数并建立一个答案,但发现当前答案不起作用,我应该返回什么。
例如,如果答案应该是一个 ArrayList,我不能返回 false 说它不起作用。- 我应该返回一个像 null 或 -1 这样的标记值并在递归调用中检查它吗?- 或者该函数是否应该只返回 void 并且仅当我确定有答案时才添加到函数外部的变量中 - 或者我应该存储一个额外的参数来保存该值,如果它不起作用则忽略它(I'我不确定如何在我当前的示例中执行此操作) - 或者我应该首先有一个函数来检查它是否有效,然后执行操作
我目前试图弄清楚的问题类似于计算字符串中的所有排列。不同之处在于排列中连续的两个字符的排列在字母表中不能连续,并且顺序相同。例如,“bc”是不允许的。“cb”没问题。不确定这是否是我的问题的一个很好的例子,但如果不是,我的问题仍然存在,因为我总是对处理回溯递归感到不舒服。