并不想得到所有合法的答案,只想要一个答案
将递归函数的返回值类型设置为bool,然后在得到一个答案后返回true。
// 函数找到一个答案后就返回 true
bool backtrack(vector<string>& board, int row) {
// 触发结束条件
if (row == board.size()) {
res.push_back(board);
return true;
}
...
for (int col = 0; col < n; col++) {
...
board[row][col] = 'Q';
if (backtrack(board, row + 1))
return true;
board[row][col] = '.';
}
return false;
}
reference:https://labuladong.gitee.io/algo/1/5/