当前位置:   article > 正文

递归+回溯+leetcode原题讲解_istudy操作题

istudy操作题

从大学就一直对递归很迷糊,想不清楚,最近刷leetcode这又是绕不过去的弯,索性这次认真研究一下并做个总结。

这里关于回溯讲解的比较容易懂。https://blog.csdn.net/versencoder/article/details/52071930

大概总结一下总有一个套路

  1. 定义一个全局结果用于保存最终的答案ans
  2. 定义一个辅助方法(函数)void backtrack(){},一般参数都有一个保存中间值的temp,其他参数根据实际题目定
  3. 接着分析递归出口,即什么时候将中间结果temp加入ans中

还有最重要的一点就是回溯,这个是为了还原现场,为了不影响下一次选择。这里讲的比较抽象,对于具体代码怎么体现我也迷糊了很久。下面就两道leetcode中具体的题目讲解一下。

题目一leetcode 39. combination Sum

这题在我添加的回溯法讲解中讲的很详细,属于典型的可以套用回溯的公式来。

  1. class Solution {
  2. public:
  3. vector<vector<int>> ans;
  4. vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
  5. vector<int> temp;
  6. backtracking(candid
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/916230
推荐阅读
相关标签
  

闽ICP备14008679号