代碼隨想錄算法訓(xùn)練營(yíng)第三十天|332.重新安排行程、51. N皇后、37. 解數(shù)獨(dú)

332.重新安排行程

51.?N皇后?

37.?解數(shù)獨(dú)?

一刷略過(guò)

看下回溯的總結(jié):

回溯是遞歸的副產(chǎn)品,只要有遞歸就會(huì)有回溯,所以回溯法也經(jīng)常和二叉樹(shù)遍歷,深度優(yōu)先搜索混在一起,因?yàn)檫@兩種方式都是用了遞歸。

回溯法就是暴力搜索,并不是什么高效的算法,最多再剪枝一下。

回溯算法能解決如下問(wèn)題:

組合問(wèn)題:N個(gè)數(shù)里面按一定規(guī)則找出k個(gè)數(shù)的集合

排列問(wèn)題:N個(gè)數(shù)按一定規(guī)則全排列,有幾種排列方式

切割問(wèn)題:一個(gè)字符串按一定規(guī)則有幾種切割方式

子集問(wèn)題:一個(gè)N個(gè)數(shù)的集合里有多少符合條件的子集

棋盤(pán)問(wèn)題:N皇后,解數(shù)獨(dú)等等

回溯模板:

void backtracking(參數(shù)) {

? ? if (終止條件) {

? ? ? ? 存放結(jié)果;

? ? ? ? return;

? ? }

? ? for (選擇:本層集合中元素(樹(shù)中節(jié)點(diǎn)孩子的數(shù)量就是集合的大?。? {

? ? ? ? 處理節(jié)點(diǎn);

? ? ? ? backtracking(路徑,選擇列表); // 遞歸

? ? ? ? 回溯,撤銷(xiāo)處理結(jié)果

? ? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容