日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

回溯算法超详细讲解(附代码)

發(fā)布時(shí)間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 回溯算法超详细讲解(附代码) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

因?yàn)樽约涸趯W(xué)習(xí)回溯算法的時(shí)候一直不清楚回溯的具體過(guò)程, 可能是因?yàn)樽约禾?#xff0c;這個(gè)問(wèn)題困擾了我好幾天。回溯還是挺有用的,樹(shù)的遍歷,全排列問(wèn)題都可以用回溯算法解。面試的時(shí)候好像也比較側(cè)重回溯算法和動(dòng)態(tài)規(guī)劃。

回溯形象解釋下:假設(shè)你要從你家去你女朋友家,沒(méi)有導(dǎo)航,但是她告訴你了,從你家到她家要只需經(jīng)過(guò)兩個(gè)十字路口就可以,這個(gè)時(shí)候怎么辦呢,只能是從第一個(gè)十字路口選擇一個(gè)方向(A)然后一直走遇到第二個(gè)十字路口,然后你又隨便選擇了一個(gè)方向(a)走,過(guò)了一會(huì)你打電話告訴女朋友你走的那條路周?chē)沫h(huán)境,然后你女友告訴你:死鬼那條路不對(duì),這個(gè)時(shí)候,只能回到第二個(gè)十字路口那選擇(b,c,d)方向,不幸的是你一開(kāi)始就選擇錯(cuò)了十字路口,四條路試完,只能回到第一個(gè)十字路口,再次選擇,最后,你把第一個(gè)十字路口的四個(gè)方向都試完,你一定能到女友家,然后一頓云雨,正當(dāng)你大汗淋淋的時(shí)候戛然而止,你說(shuō):媽的,我還有一道回溯算法的題沒(méi)做,回去做了。卒

玩笑歸玩笑,拿個(gè)具體的例子說(shuō)明一下。

這道題來(lái)源于leetcode

class Solution { public:vector<vector<int>> subsets(vector<int>& nums) {vector<vector<int> > res;vector<int> tmp;helper(res,tmp,nums,0);return res;}void helper(vector<vector<int> >& res,vector<int> &tmp,vector<int>& nums,int level){if(tmp.size()<=nums.size()){res.push_back(tmp);}for(int i=level;i<nums.size();i++){tmp.push_back(nums[i]);helper(res,tmp,nums,i+1);}tmp.pop_back();} };

注:tmp一開(kāi)始為[] ,在后面寫(xiě)的時(shí)候不再說(shuō)寫(xiě)入tmp和res。

a):i=0 開(kāi)始 遞歸回溯 ,此時(shí)tmp里面有[1] 進(jìn)入helper后 res里面有 [1]?

b)i+1 變?yōu)? 注意這個(gè)i+1并不是for循環(huán)里面的i++,而是你遞歸里面的i+1。這是理解回溯算法的關(guān)鍵,因?yàn)椴皇莊or循環(huán)里面的i+1,所以for循環(huán)里面還有i=1,i=2沒(méi)用,相當(dāng)于十字路口的其他方向,回溯是回到這里,tmp變?yōu)閇1,2],res里面有[1][1,2]。

c)i+1 tmp:[1,2,3];res:[1][1,2][1,2,3];此時(shí)發(fā)現(xiàn)i=4不滿足for循環(huán)的條件,執(zhí)行tmp.pop_back()tmp為空。這個(gè)時(shí)候要回溯了,因?yàn)橐呀?jīng)走到路的盡頭了,回到最近的那個(gè)地方也就是b),此時(shí)我們發(fā)現(xiàn)2那個(gè)方向已經(jīng)走過(guò)了所以不再走,換另一個(gè)方向,即for循環(huán)中的i+1。也就是說(shuō)tmp不再插入2了,插入3變?yōu)閇1,3]。然后又滿足for循環(huán)了,執(zhí)行tmp.pop_back()tmp為空。此時(shí)? b)試完了,一共兩個(gè)方向,即i=1和i=2.然后回到? a) tmp :[2] res:[1][1,2][1,2,3],[1,3] [2]。以此類(lèi)推,應(yīng)該是可以明白了,到這里。

?

?

總結(jié)

以上是生活随笔為你收集整理的回溯算法超详细讲解(附代码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人影视网 | 澳门久久 | 禁久久精品乱码 | 欧美乱欲视频 | 国产精品自慰网站 | 秋霞三区 | 中国黄色一级毛片 | 美女免费看片 | 国产亚洲一区二区三区四区 | 成人永久免费 | 久久天天躁狠狠躁夜夜躁2014 | 国产亚洲精品久久久久久久久动漫 | 成人自拍视频在线观看 | 一区二区不卡av | 大香伊人中文字幕精品 | 久久网站免费观看 | 国内自拍真实伦在线观看 | 日本天堂网 | 亚洲在线资源 | 亚洲精品久久一区二区三区777 | 国产高清无遮挡 | 51国产偷自视频区视频 | 制服丝袜成人动漫 | 欧美高清一区二区 | 国产午夜精品免费一区二区三区视频 | 一级特黄特色的免费大片视频 | 最新av不卡| 乡村性满足hd | 欧美影院一区二区三区 | 在线成人福利 | 国产v亚洲 | 97精品在线观看 | 99久久视频 | 国产一级视频在线播放 | 波多野结衣一区二区三区 | 成年人在线观看网站 | 91精品国产乱码久久 | 春色激情站 | 亚洲www色 | 久久精品国产精品亚洲色婷婷 | 欧美日韩在线视频免费 | 国产一区视频网站 | 久久久精品国产sm调教 | 亚洲欧美激情视频 | 男人的天堂你懂的 | 日韩丝袜一区 | www免费网站在线观看 | 亚洲欧美成人一区二区 | 国产理论精品 | 97超碰97 | 精品人妻一区二区三区日产乱码 | aaa色| 日韩成人精品一区二区 | 欧美123区| 奶罩不戴乳罩邻居hd播放 | 97久草 | 99国产一区 | 男人天堂社区 | av手机在线播放 | 亚洲成人免费在线 | 色婷婷777 | 麻豆国产原创 | 国产真人真事毛片 | 蜜桃av成人永久免费 | 亚洲欧美黄色片 | 日本视频在线免费 | 国产在线伊人 | 久久精品影视 | 久久视频精品 | 青青草原亚洲视频 | 国产老头老太作爱视频 | 黑人干日本少妇 | 在线国产欧美 | 欧美另类69 | av影院在线观看 | 精品一区二区三区免费视频 | 91黑人精品一区二区三区 | 天天插美女 | 亚洲特黄| 国产精品伦一区二区三区免费看 | 欧美一级二级在线观看 | 国产乱码一区二区三区 | 黄色小视频免费在线观看 | 乱熟女高潮一区二区在线 | 精品国产乱码久久久人妻 | 一区二区三区手机在线观看 | 精品久久久久久久久久岛国gif | 蜜桃tv一区二区三区 | 精品aaa| 日韩精品一区二区三区在线播放 | 日韩av网页 | 亚洲成人免费在线观看 | 久久涩涩| 人妻夜夜爽天天爽三区麻豆av网站 | 中出一区二区 | 九九综合视频 | 久久新网址 | 国外av网站| 欧美一级欧美三级在线观看 |