我需要了解这种递归是如何工作的,我了解简单的递归示例,但更高级的递归示例很难。甚至认为只有两行代码我遇到了问题……return
语句本身。我只是对它的工作原理持空白,尤其是 and/or 运算符。任何见解都非常受欢迎。
bool subsetSumExists(Set<int> & set, int target) {
if (set.isEmpty()) {
return target == 0;
} else {
int element = set.first();
Set<int> rest = set - element;
return subsetSumExists(rest, target)
|| subsetSumExists(rest, target - element);
}
}