大佬们你们当时递归都是怎么学会的啊。。我们数据结构没学过递归,现在压根写不出来递归,只能写写书上最基础的二叉树遍历那种递归,看别人的代码勉强能看懂。。大神们给孩子指条学习的明路把,求求了。。
全部评论
想好终止条件就行
1.明确定义的递归函数是用来干嘛的;
2.明确终止条件;
3.千万不要跳进一层一层的递归;<div class="nc-feed-reply-imgs-slideshow"><img src="https://uploadfiles.nowcoder.com/images/20220223/740435612_1645618477095/3067C9D89D75E79DF11E3581F9C99B9F" alt="image.png" width="449" height="545"></div>
递归很好写的,能写出递归的肯定不难,难得是dp,递归第一部先想函数,函数中每个参数都要思考,思考这个函数是干啥的,能帮你得到啥结果,然后思考下一步该怎么走,走了一步后,问题是不是原问题的简化版
代码随想录 可以参考下
我也不是很懂,反正我理解的递归就是自己代自己,就是剥洋葱,但是每次代入变量都会按规定递减,每次递推的结果都在下一层递推里,直到最底层的递推结果出来,每一层的递推结果才得以解开。所以递归我的理解就是先递推(层层推导,但每一次推导的解都在下一层推导,这么推导是为了获得最底层的结果,也就是初值)后回归(最底层结果出来后,才能从底层开始把之前每一层的递推结果算出来,然后最外层的结果就是最终结果)
我从终止条件往前推
个人感觉,递归就好比树。多研究研究树的遍历算法就能明白一些。关键在于不要去思考递归过程到底是怎么走的,这玩意是给机器执行的,人脑想不明白的。而应该将递归看做是若干个节点的叠加。只需要处理好一个节点的所有情况,包括调用自身和程序结束返回的情况,整个递归算法就成立了。
算法刷多了就会了
就和数学归纳法一个流程。先写出递推公式,然后用编程语言表达出来,加个终止条件就行了。
多找几个大佬的代码案例,把数据流转过程打印出来,多看看数据变化过程会加深理解
家人们,通过一个月刷代码随想录我终于悟了,大彻大悟
我的理解是,压栈😅
打断点,画图就懂了
做一做树相关的题,多来几个就有理解了。
千万不要代进去想,把递归当成一个黑盒子
千万不要试图把递归带进去想,这样会越来越乱,你就把递归当成一个黑盒,想好它是干嘛的,想好终止的条件,以及返回给上一层的数据
全是套路,背会就行了
多想二叉树
从暴力递归到动态规划https://www.nowcoder.com/courses/cover/live/717
谢谢各位大佬,感觉还是多刷刷题找感觉😂
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享