回溯是一种搜索的方式,回溯与递归息息相关,回溯函数也就是递归函数,二者指的是一个东西。回溯的本质就是穷举,穷举所有的可能,找到需要的答案。若要提高回溯的效率,可以通过剪枝,但无法改变回溯是穷举的本质。回溯法可以解决的问题:组合问题、切割问题、子集问题、排列问题、棋盘问题等。注意:排列强调元素的顺序,组合不必关心元素的顺序。如:{1,2},在组合上是一个集合,而在排列上则是两个集合。所有回溯法能解决的问题都可以抽象为树形结构!因为回溯法解决的都是在集合中递归查找子集,集合的大小构成了树的宽度,递归的深度构成了树的高度。注意:递归有终止条件,所以对应的树结构必然是有限高度的。回溯三要素:1.函数的...