![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归
文章平均质量分 67
记忆星空
这个作者很懒,什么都没留下…
展开
-
pat1064
对于写递归次数不多的人来说,这个递归可能不是那么好写,代码中creat(x,y)返回的是我让你从编号x到编号y建一棵完全二叉搜索树的父亲节点编号,这个过程是通过计算,假如我有x,x+1,x+2,....y这么多个点建树,那么这棵树的左右子树分别是多少个点,递归建左右子树后,返回这颗树的父亲节点编号,建完树以后就一遍bfs非常简单了。代码如下:#include#include#inclu原创 2013-09-30 22:52:16 · 761 阅读 · 0 评论 -
LeetCode Subsets && Subsets II
这是两个比较基础的搜索题(dfs),可能也叫做回溯法,个人觉得dfs一般都会有回溯,第一问比较简单,每次进入一个状态就把当前状态加入到ans中,如何只要在搜索过程中,记录当前的起点是第几个数,然后从该数往下搜索即可,注意保留现场,也就是push_back后还得pop_back,代码如下:vector >ans;vectortmp;void solve(int dep, vector &S){原创 2015-02-07 10:15:01 · 421 阅读 · 0 评论 -
ID3 and C4.5 Decision Tree
ID3决策树主要是用来进行分类,它的主要做法还是比较简单的,但是基于是递归的建树,所以写起代码来不是那么好写,它的做法大概是:对于初始样本,选择一个最优的feature(怎么样算是最优,下面会解释),将一个点根据这个feature的不同取值,分成不同的分支,也就是说feature取几个值,就有几个分支,然后递归它的每一个分支,直到达到某些条件则停止递归。原创 2015-04-14 16:29:09 · 634 阅读 · 0 评论 -
LeetCode Palindrome Partitioning I&&Palindrome Partitioning II
一看到这个问题马上有一个类似矩阵连乘dp的思想,dp[i][j]表示第i个字符到第j个字符可以分的最少回文串数,那么有dp[i][j]=min(dp[i][k],dp[k+1][j]),k=[i,j-1],如果i到j不是回文;dp[i][j]=1,i到j是回文。用这样的方法首先要用数据isdc[i][j]来记录i位置到j位置的串是不是回文,计算这样的dp数组需要的时间复杂度是O(n^3),交上去超原创 2015-01-16 19:59:22 · 465 阅读 · 0 评论 -
约瑟夫问题
以前搞acm的时候,做的最少的就是数论这种题目了,可以说是完全不会,曾经接触过约瑟夫问题,如果作为一个模拟,给初学者做做挺好的,但是它居然有公式,而且公式和mod扯上了关系,乍一看以为又是和数论有关,其实,它最主要的是一个递归子问题,也是我比较喜欢的问题之一。约瑟夫问题,有n个人,编号从0到n-1围成一个圈,从1开始,数m个,然后把第m个从这个圈中剔除,然后继续从1开始数m个,再剔除这个人,直原创 2014-01-30 18:32:34 · 610 阅读 · 0 评论