每次刷到回溯算法题将在此博文更新~~~
????这里简单介绍下回溯:
????回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。—《百度百科》
回溯是递归的副产品,只要有递归就会有回溯,所以也是一个递归函数。
回溯本质是穷举所有可能(即暴力搜索,有时候没法for循环迭代,只能暴力),其本身并不是什么高效的算法,可以通过剪枝使其稍稍高效一些,但也改变不了穷举的本质。
????回溯法,⼀般可以解决如下几种问题:
1. 组合问题:N个数里面按⼀定规则找出k个数的集合2. 切割问题:⼀个字符串按⼀定规则有几种切割方式3. 子集问题:⼀个N个数的集合里有多少符合条件的子集
如果觉得《LeetCode刷题记录---回溯(Back Tracking)算法》对你有帮助,请点赞、收藏,并留下你的观点哦!