LeetCode:Hot100python版本之回溯

回溯算法其实是纯暴力搜索。for循环嵌套是写不出的

组合:没有顺序

排列:有顺序

回溯法可以抽象为树形结构。只有在回溯算法中递归才会有返回值。

46. 全排列

排列是有顺序的。

组合类问题用startindex,排序类问题用used,来标记使用过哪些元素。

78. 子集

空在根节点里面。

子集也是一种组合问题,因为它的集合是无序的。树形结构的每个节点的结果都是我们的结果。

全局变量数组path为子集收集元素,二维数组result存放子集组合。(也可以放到递归函数参数里)

17. 电话号码的字母组合

39. 组合总和

22. 括号生成

为了检查序列是否有效,我们遍历这个序列,并使用一个变量 balance表示左括号的数量减去右括号的数量。如果在遍历过程中 balance的值小于零,或者结束时 balance 的值不为零,那么该序列就是无效的,否则它是有效的。

79. 单词搜索

​​​​​​131. 分割回文串

切割问题的回溯搜索的过程和组合问题的回溯搜索的过程是差不多的。

51. N 皇后

(困难)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值