码迷,mamicode.com
首页 >  
搜索关键字:递归    ( 18847个结果
Problem Path Sum II
Problem Description:Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.Solution: 递归。 1 public List>...
分类:其他好文   时间:2014-07-07 16:59:12    阅读次数:169
[Leetcode][Tree][Symmetric Tree]
如果按层次遍历,存下每一层的点,会MLE。1、递归版本:关键还是子问题的划分。 1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * ...
分类:其他好文   时间:2014-07-07 13:58:07    阅读次数:181
最接近点对问题
题目大意,给出平面上n个点,每个点都有自己的坐标,找其中一对点,在其中是最短的距离每一点个n-1个点算出距离,这方法太SB了,换一个然后就考虑两个子集,S1和S2,分别大约有N/2个点,使得在n个点组成的所有点对中,然后在每一个子集集中递归来解决这问题。问题就是两点如果恰好分别在S1和S2,怎么办?...
分类:其他好文   时间:2014-07-03 11:09:01    阅读次数:130
SQL 无限级分类语句
原表数据为:此处用到了with关键字,在程序中也可以用递归实现,但觉得还是没有一条sql方便with tb (ID,Name,ParentID,Sort)as( select a.*,convert(varchar,convert(varchar,partid)+'->'+convert(varch...
分类:数据库   时间:2014-06-30 23:34:46    阅读次数:332
二叉查找树C语言实现
二叉查找树C语言实现 1.      二叉查找树的定义: 左子树不为空的时候,左子树的结点值小于根节点,右子树不为空时,右子树的结点值大于根节点,左右子树分别为二叉查找树 2.      二叉查找树的最左边的结点即为最小值,要查找最小值,只需遍历左子树的结点直到为空为止,同理,最右边的结点结尾最大值,要查找最大值,只需遍历右子树的结点直到为空为止。二叉查找树的插入查找和删除都是通过递归的方式...
分类:编程语言   时间:2014-06-30 19:34:32    阅读次数:246
排序(5)---------快速排序(C语言实现)
快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。 步骤为: 1,从数列中挑出一个元素,称为 "基准", 2,重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区操作。 3,递归地把小于基准值元素的子数列和大于基准值元素的子数列排序。 4,递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递...
分类:编程语言   时间:2014-06-30 08:19:12    阅读次数:203
编程算法 - 字符串的排列 代码(C)
字符串的排列 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 输入一个字符串, 打印出该字符串中字符的所有排列.方法: 使用递归依次交换位置, 打印输出.代码:/* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8....
分类:其他好文   时间:2014-06-30 00:52:42    阅读次数:247
LR(1)文法分析器 //c++ 实现
1、先读入终结符,非终结符,和所有产生式。 2、预处理:初始化;getpp()获得每个非终结符在产生式左边时的产生式编号, 记录在 string getp[]中(可以多个)。 3.获得所有的符号的first集:dfs法,从S开始DFS,遇到终结符则是递归出口,回溯时候沿路保存记录所有路径上VN的first,(遇到有左递归的,continue,左递归的产生式不用不影响求fisr...
分类:编程语言   时间:2014-06-30 00:36:21    阅读次数:375
USACO nocows DP
这题没想出来,直接参考了nocow,太弱了= =。 基本思想是动态规划,因为树是递归结构,所以可以递归分成子问题处理。一个树可以看成根加左子树加右子树,所以根据乘法原理,N个节点放成k层的结构等于i个节点放成k - 1层乘以N - i - 1个节点放在k - 1层的积。 令dp[i][j] 为i个节点放j层的最多可能数量,则dp[i][j] = sum{dp[k][j - 1] * dp[i ...
分类:其他好文   时间:2014-06-29 23:49:12    阅读次数:339
poj3252-Round Number 组合数学
思路基本上就是组合计数,唯一特别需要注意的是在计算组合数的时候很容易越界,虽然上面分析了计算结果在int范围内是没有问题的,但是计算组合数中间过程还是很可能越界,所以这里要特别注意。解决方法是利用C(n,m)=C(n-1,m-1)+C(n-1,m)进行递归计算,而不是使用传统的乘法计算方式。为了更有效率一点,可以事先计算好n=1~32,m=1~32的组合数的结果然后存起来。...
分类:其他好文   时间:2014-06-29 22:30:04    阅读次数:314
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!