236. Lowest Common Ancestor of a Binary Tree - 若p和q分别位于左右子树中,那么对左右子结点调用递归函数,会分别返回p和q结点的位置,而当前结点正好就是p和q的最小共同父结点,直接返回当前结点即可,这就是题目中的例子1的情况。 - 若p和q同时位于左子树 ...
分类:
其他好文 时间:
2019-12-23 13:05:41
阅读次数:
86
题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 这道题有点复杂,要用到两个递归来判断。首先因为约定的空树不是任意一个树的子树,所以先判断一下两个树是不是为空,若空则返回false。 然后用另一个递归函数判断B是不是当前树A的子结构。如果是,则返回tr ...
分类:
其他好文 时间:
2019-12-22 12:36:18
阅读次数:
82
一个函数在函数体内部调用自己,这样的函数称为递归函数,递归的次数在python是有限制的,默认递归次数是997次,超过997次会报错:RecursionError. 一.递归函数案例 案例一:计算数字N的阶乘(举个栗子:9的阶乘 = 9*8*7*6*5*4*3*2*1) # !usr/bin/env ...
分类:
编程语言 时间:
2019-12-17 22:22:14
阅读次数:
122
什么是递归? 简单理解就是:自己调用自己 写一个递归函数的关键:1、递归公式 (重复执行某个规则)2、终止条件(也就是最后应该是个常量,而不是一直执行下去) 具体化过程,比如我们要求1~n的整数之和,我们很容易想到这个方式: 那么如果换成递归方式去写应该是怎样的呢? 首先我们要找到这个算法的规则,这 ...
分类:
编程语言 时间:
2019-12-16 22:18:24
阅读次数:
108
inline——嵌入代码行中,类似宏但更强大(宏不能做类型检查) 空间换时间 不是defination,而是declaration 建议将两三行的短函数,或会被多次调用(循环中的函数)定义成inline 大函数(>20行),递归函数 在.h文件中定义函数体即可,不需要.cpp文件 类的成员函数直接在 ...
分类:
编程语言 时间:
2019-12-16 22:09:02
阅读次数:
83
1、算法与数据结构的关系: (1)数据结构+算法=程序 数据结构是对数据的描述,算法是对数据的操作,因此:数据结构+算法=程序 算法侧重于对解决问题的方法的描述。 程序是对一个算法的具体实现。 (2)联系: 数据结构是算法设计的基础。 算法的操作对象是数据结构。 数据结构设计主要是选择数据的存储方式 ...
分类:
编程语言 时间:
2019-12-13 20:01:53
阅读次数:
81
# 生成器三个方法:send,close throw# send()发送数据 f# def gen():# for i in range(10):# j=yield i# print(j)# g=gen()## print(next(g))# print(g.send(100))# print(ne ...
分类:
编程语言 时间:
2019-12-11 00:34:02
阅读次数:
151
递归 递归调用 一个函数,调用了自身,称为递归调用 递归函数:一个会调用自身的函数称为递归函数 凡是循环能干的事,递归都能干 方式: 写出临界条件 找这一次和上一次的关系 假设当前函数已经能用,调用自身计算上一次的结果,再求出本次的结果 栈和队列 栈 存取数据的特点: 先进后出 模拟栈结构 stac ...
分类:
其他好文 时间:
2019-12-07 12:12:43
阅读次数:
93
1.今日内容大纲 1. 带参数的装饰器 2. 多个装饰器装饰一个函数 3. 递归函数 2.具体内容 1. 带参数的装饰器 2. 多个装饰器装饰一个函数 3. 递归函数 ...
分类:
编程语言 时间:
2019-12-03 15:31:36
阅读次数:
78
用递归函数来实现获取斐波拉契数列中第n个数字的值 ps(斐波那契数列:从3三个数开始,后一个数等于前面两个数的和: 0,1,1,2,3,5,8,13,21,34,55,89,144……) def add(n): if n > 2: return (add(n-1) + add(n-2)) if n ...
分类:
其他好文 时间:
2019-12-02 23:34:26
阅读次数:
138