// 算法模板
function backtrack(n, used) {
// 判断输入或者状态是否非法
if (input/state is invalid) {
return;
}
// 判读递归是否应当结束,满足结束条件就返回结果
if (match condition) {
return some value;
}
// 遍历当前所有可能出现的情况,并尝试每一种情况
for (all possible cases) {
// 如果上一步尝试会影响下一步尝试,需要写入状态
used.push(case)
// 递归进行下一步尝试,搜索该子树
result = backtrack(n + 1, used)
// 在这种情况下已经尝试完毕,重置状态,以便于下面的回溯尝试
used.pop(case)
}
}
package com.camunda.annotation