LeetCode 刷题笔记——递归与回溯的理解
LeetCode 刷题笔记——递归与回溯的理解 马上就要入职了。在入职之前受师兄点拨,疯狂刷 LeetCode ,整个痛并快乐着的过程中,在算法和数据结构方面受益良多。 在刷题过程中,很快的就遇到了闻名已久的 递归 (Recursive) 。首次遇到递归,是 LeetCode 的第 17 题: Letter Combinations of a Phone Number 。解这道题的时候,虽然之前没有专门学过,但最先就想到了递归的解法,无师自通的把这个题解开了还让我得意了许久~ 不过后来又遇到了第 22 题: Generate Parentheses ,本来以为是一个很简单的,可以无脑用递归解决的问题,直接废了我一个上午…… 后来网上查了一下,它们说要用 回溯 (Backtrack) 的方法理解并解答。一看代码,形式同样也是反复调用函数自身,感觉这和递归并没什么区别啊? 于是多做了几道关于递归和回溯的问题,并在网上找了一些大神们的言论,自己对 递归 和 回溯 进行一些总结如下。 参考地址: 题库: LeetCode 递归与回溯的区别解释: 《关于递归与回溯比较通俗的方法》 《回溯和递归区别》 答题思路与源码 《leetcode 46. Permutations-全排列|回溯|递归|非递归》 《刷题笔记3(关于Permutation需要知道的事)》 《以Generate