回溯算法的題目,這樣做,秒殺!!

點個贊,看一看,好習慣!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收錄,這是我花了 3 個月總結的一線大廠 Java 面試總結,本人已拿大廠 offer。
另外,原創文章首發在我的個人博客:blog.ouyangsihai.cn,歡迎訪問。

這一篇文章來講解一下如何做leetcode回溯算法題目,這一段時間我把leetcode上面的回溯算法的題目都刷了個遍,發現了其中一些規律,所以,就想寫一篇文章來總結一下,怕以後忘記。

刷完回溯算法的題目,我發現其實可以總結爲三大類:子集問題、組合問題、排列問題,那這三大類都是什麼意思呢,我分別舉一個例子來說明。

子集問題,比如說,數組[1,2,3],那麼對應的子集問題就是,這個數組的子集有:[],[1],[2],[3],[1,3],[2,3],[1,2],[1,2,3],這就是這個數組的子集,這一類問題在leetcode上面很多個,而且有些題目數組中的元素是可以重複的,然後來求子集問題。

組合問題,比如說,數組[1,2,3],組合出target爲3的可能的選擇,那麼就有:[1,2],[3],這就是leetcode中的組合問題。

排列問題,排列問題就比較簡單了,比如,我們常見的全排列問題,leetcode也有這一類問題。

這篇文章,我們就來講講,怎麼用回溯的算法去解決這些問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章