溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

回溯算法之怎么求組合

發(fā)布時(shí)間:2021-10-19 15:50:07 來源:億速云 閱讀:84 作者:iii 欄目:web開發(fā)

本篇內(nèi)容介紹了“回溯算法之怎么求組合”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

回溯算法大家是不是已經(jīng)快忘了,還記得組合問題應(yīng)該怎么求了么?哈哈哈

回溯算法其實(shí)就是暴力搜索,既然是暴力搜索為什么要非要用回溯呢?因?yàn)橐恍﹩栴}能暴力搜索出就不錯(cuò)了,找不出更好的辦法。

給定兩個(gè)整數(shù) n 和 k,返回 1 ... n 中所有可能的 k 個(gè)數(shù)的組合。

如果用for循環(huán)嵌套一層一層去解決這個(gè)問題,如果n為100,k為50呢,那就50層for循環(huán),此時(shí)就發(fā)現(xiàn)單純的暴力不可以了。

回溯算法就登場(chǎng)了。

回溯算法中的用遞歸來做for循環(huán)層疊嵌套(可以理解是開k層for循環(huán))

每一次的遞歸中嵌套一個(gè)for循環(huán),那么遞歸就可以解決多層嵌套循環(huán)的問題了。

我在文章回溯算法:求組合問題! 中,同時(shí)還給出了回溯三部曲。按照這個(gè)方法來,就發(fā)現(xiàn)回溯算法其實(shí)并不難咯。

題目鏈接:https://leetcode-cn.com/problems/combinations/

回溯算法模板如下:

void backtracking(參數(shù)) {     if (終止條件) {         存放結(jié)果;         return;     }      for (選擇:本層集合中元素(樹中節(jié)點(diǎn)孩子的數(shù)量就是集合的大?。? {         處理節(jié)點(diǎn);         backtracking(路徑,選擇列表); // 遞歸         回溯,撤銷處理結(jié)果     } }

“回溯算法之怎么求組合”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI