dfs特征(元素不重復(fù))

如果元素不重復(fù)使用dfs,可重復(fù)使用dp(不過(guò)重不重復(fù)這兩個(gè)都可以解決,只是好理解)


  1. 比如beautiful arrangement 4個(gè)元素
    坑是pos 遍歷1-4 把坑+1 坑從1開(kāi)始增加 當(dāng)坑(pos)>5 return;
    先填pos = 1 ,used記錄是否訪(fǎng)問(wèn)
    1234之后,回溯
    然后填pos = 2
    然后3和4
    NQUEEN問(wèn)題也是不過(guò)是一行一行的填坑
  2. 代碼固定
    visited記錄1
    helper()
    visited記錄0
  3. 理解
    pos是坑
    開(kāi)始給1填 填好1234
    回溯
    填坑
  4. 上一次和當(dāng)前
    helper(N, pos + 1, used);
    為什么選的坑是pos。
分析
  1. pos = 3 結(jié)束?(pos = 3時(shí) 有 i = 3和4)
    i = 3 時(shí),pos = 3(回溯直接是回復(fù)狀態(tài) 是回溯到i = 3的時(shí)候)
    i = 4 , pos =3
    pos = 2 結(jié)束?(i = 3和4)
    i = 2 pos = 2 (回溯直接是回復(fù)狀態(tài))
    i = 3 pos = 2
    i = 4 pos = 2
  2. 如果不能符合,則每次if都過(guò)不去,然后i值一直迭代 直到回溯上個(gè)規(guī)模
  3. i = 1 時(shí),會(huì)執(zhí)行
    used[1] = 1
    help()
    used[1] = 0 //重置狀態(tài)
    但是i = 2 的時(shí)候?yàn)槭裁床荒馨?填到pos = 1 中?
    因?yàn)檫@時(shí)候的規(guī)模還在 i = 1 used[1] 被占了,
    只有在i = 1 這輪循環(huán)結(jié)束之后才能把2放入pos = 1 中
    也因?yàn)檫@樣解才有這樣的規(guī)律(先填pos = 1 的所有解遍歷之后,遍歷2 然后3 )
  4. pos = 3 上次是pos = 2
    pos = 3 結(jié)束 ,回溯到pos = 2
最后編輯于
?著作權(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)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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