递归
信仰..
学无止境
展开
-
牛客网:逆序对(归并排序)
思路:我们知道在归并排序的逆序对求法中,我们是通过递归的方式求解每一段的逆序对,通过这个方法我们似乎可以求解该题,在递归的过程中,我们多一个参数用来表示当前递归的是第几层,而这个层数其实就是我们需要找的qi。我们首先预处理出所有层的逆序对数和顺序对数,在查询时我们需要翻转所有大小为2^(qi)的块,由于已经预处理过了,因此直接交换相应层的顺序对和逆序对的值即可,但是在交换的过程中我们发现其实所有小于2^(qi)的块的逆序对数量也等于原顺序对数量,因此也是需要交换的。除此之外在求解答案的时候我们也需要将所..原创 2021-01-01 23:39:14 · 398 阅读 · 0 评论 -
牛客网:对称二叉树(递归)
链接:https://ac.nowcoder.com/acm/problem/21472来源:牛客网题目描述一棵有点权的有根树如果满足以下条件,则被轩轩称为对称二叉树:1. 二叉树;2. 将这棵树所有节点的左右子树交换,新树和原树对应位置的结构相同且点权相等。下图中节点内的数字为权值,节点外的 id 表示节点编号。现在给出一棵二叉树,希望你找出它的一棵子树,该子树为对称二叉树,且节点数 最多。请输出这棵子树的节点数。注意:只有树根的树也是对称二叉树。本题中约定,以节点..原创 2020-12-18 11:58:00 · 426 阅读 · 0 评论 -
汉诺塔问题(+递推公式)
汉诺塔问题是使用递归解决问题的经典范例。 汉诺(Hanoi)塔问题:古代有一个梵塔,塔内有三个座A、B、C,A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把这64个盘子从A座移到B座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求打印移动的步骤。如果只有一个盘子,则不需要利用B座,直接原创 2016-08-24 18:37:22 · 17990 阅读 · 0 评论