1.回溯算法:
回溯算法也叫试探法,它是一种系统地搜索问题的解的方法
Example:八皇后问题
在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
对于方格(ROWi,COLj)内的皇后,可对其攻击的皇后位置坐标(row,col)满足
上对角线:
col+row=COLj+ROWi;
下对角线:
col-row=COLj-ROWi;
行:
(ROWi,col)
列:
(row,COLj)
用8个元素的整数向量qeensList存储row,向量的索引值对应着col,例如
qeensList[col]=row,就表明一个皇后占据着方格(row,col)=(queensList[col],col);
*回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试