
递归专题
文章平均质量分 78
递归算法总结
小小的香辛料
天落九重影,君便晓黎明炫目。
展开
-
写给新手的你:搞懂递归
---递归,对于小白来说可能是个噩梦,这无穷无尽的套娃让小白挠破头皮......1.定义: 递归时函数调用自身的过程,类似于套娃,它必须要有递归主体和递归出口。关于递归的定义,网上一抓一大把,这里不多讲。本文重点讲对递归的理解和应用。2.理解首先 ,为什么小白很难理解递归?因为它不直观。想想for循环为什么那么容易理解,因为它直观。我们可以很清楚的看到for循环是从几开始,到几结束,每次循环执行了什么语句。反观递归,除了知道,它在套自己娃,我们几乎都很难直观的看出来。比如什么时候...原创 2021-01-01 13:50:14 · 831 阅读 · 1 评论 -
总结二分查找及其变形问题
//方法一 (递归法//当有多个相同值时,若为相同的数为奇数,则取中间的数。//若为偶数,则取中间靠左的数)原创 2019-11-05 09:57:46 · 1081 阅读 · 0 评论 -
一道题弄懂递归、深度优先搜索、记忆化搜索、DP动态规划
参考博客https://blog.youkuaiyun.com/weixin_38391092/article/details/79590710有一个层数为n(n<=1000)的数字三角形。现有一只蚂蚁从顶层开始向下走,每走下一级,可向左下方向或右下方向走。求走到底层后它所经过数字的总和的最大值。【输入格式】第一个整数为n,一下n行为各层的数字。【输出格式】一个整数,即最大值。【输入样例 ...原创 2018-08-10 20:05:09 · 2288 阅读 · 0 评论 -
汉诺塔问题(递归实现)
将a柱上的n个盘子移到c的过程是怎样的呢?这个过程分三个阶段:1.n-1个盘子从a移到b;2.将1个盘子从a移到c;3.然后问题又回到了最初的状态,只不过此时是将剩余的n-1个盘子从b移到c罢了。#include<bits/stdc++.h>using namespace std;typedef long long ll;void move(int n,ch...原创 2018-08-02 11:30:10 · 344 阅读 · 0 评论 -
HDU-1995-奇妙的塔
用1,2,...,n表示n个盘子,称为1号盘,2号盘,...。号数大盘子就大。经典的汉诺塔问 题经常作为一个递归的经典例题存在。可能有人并不知道汉诺塔问题的典故。汉诺塔来源于 印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往上按大小 顺序摞着64片黄金圆盘。上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱 子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子...原创 2018-08-08 17:41:30 · 362 阅读 · 0 评论 -
HanoiTower的递归过程
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 那么这个过程是怎样的呢?让我们来分析一下。假设开始时有 a,b,c 3个柱子,圆盘...原创 2018-11-11 21:33:57 · 487 阅读 · 0 评论