回溯算法
2021-01-16 01:15
标签:通用 public mic 攻击 一个 tco 解决 ima his 回溯算法是一种尝试搜索求解的过程,当发现当前条件已经不满足求解的条件时就返回上一次的状态——回溯。 尝试别的路径,直至求出问题的解。有很多地方都用到了回溯的思想,算是一种“通用解”。 回溯法的一般步骤: 代码框架 N皇后 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q‘ 和 ‘.‘ 分别代表了皇后和空位。 示例: 题目来源:https://leetcode-cn.com/problems/n-queens/ 参考代码: 回溯算法 标签:通用 public mic 攻击 一个 tco 解决 ima his 原文地址:https://www.cnblogs.com/xiao--ge/p/12932537.html
bool Search(...)
{
if(/*边界和解条件*/)
{
/*清除状态,回溯*/
return false;
}
/*状态标记*/
/*深度递归*/
Search(...);
/*得出解或者全部遍历完成后结束遍历*/
return true;
}
输入: 4
输出: [
[".Q..", // 解法 1
"...Q",
"Q...",
"..Q."],
["..Q.", // 解法 2
"Q...",
"...Q",
".Q.."]
]
解释: 4 皇后问题存在两个不同的解法。
class Solution {
public:
vector