给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 把递归就当作三个节点,左 根 右。这层递归里要做的事情就是找到最大高度,找最大高度就是左子树算完最大高度,右子树也算完最大高度,然后+1即可。所以就是 ...
分类:
其他好文 时间:
2021-04-24 11:48:57
阅读次数:
0
一、递归函数 看如下递归函数: 1 int f(int n){ 2 if(n == 1){ 3 return 1; 4 } 5 return f(n - 1) + 1; 6 } 客户端调用该递归函数时传入n = 5, 返回的函数值为5。那么它的调用堆栈(call stack)是怎么样的?又是如何计算 ...
分类:
其他好文 时间:
2021-04-23 12:01:13
阅读次数:
0
场景: 准备做一个供前端搜索的功能,但是搜索的字段是指定的,可选项是数据库中该字段有的,因为这样的去重获取字段可选项,逻辑都是一样的,所以可以在一个方法里面写,也就出现了Model.objects.filter搜索的是一个动态可变的字段 思路: 后来在django.shortcuts.get_obj ...
分类:
其他好文 时间:
2021-04-22 16:35:11
阅读次数:
0
此处双指针代表的是一种思想,即两个(或多个)"先锋"动态式跟随并进行信息交流[个人理解],样例如下: 先输入数组大小,然后依次赋值(按照升序) ①若不得有重复元素,代码如下: 1 #include<iostream> 2 using namespace std; 3 4 const int N = ...
分类:
编程语言 时间:
2021-04-22 16:22:56
阅读次数:
0
恢复内容开始 题意:给一个长度为n的序列ai,每次从ai中挑出一个数字走ai步(不能重复用),对应坐标也增加ai.问你有多少种方案走完ai这个序列,且中途没有坐标停留在给定的 数字k上(k是一个或者是两个)。n=24 思路:n=24,非常微妙的数字。首先n!的算法的上界是11,所以全排列是不能用的。 ...
分类:
其他好文 时间:
2021-04-22 16:02:54
阅读次数:
0
快速排序: 1、执行流程(一趟快排): 2、一趟快排的结果:获得一个枢纽,在此左边皆小于此数,在此右边皆大于此数,因此可以继续使用递归获得最终的序列。 ...
分类:
编程语言 时间:
2021-04-22 16:00:56
阅读次数:
0
根据完全二叉树的性质(编号为$u$的节点的左儿子编号为$u2$,右儿子编号为$u2+1$),并利用后序遍历进行递归建树。 $level[i]$存储编号为$i$的节点的值。 const int N=35; int post[N]; int level[N]; int n; int k; void df ...
分类:
其他好文 时间:
2021-04-21 12:54:57
阅读次数:
0
第一种:用indexOf方法 这种方法最简单最直观,也最容易理解,代码如下: 1 var arr = [2, 8, 5, 0, 5, 2, 6, 7, 2] 2 var newArr = [] 3 for (var i = 0; i < arr.length; i++) { 4 if (newArr ...
分类:
编程语言 时间:
2021-04-21 12:27:04
阅读次数:
0
递归算法 递归算法的三个要素: 确定递归函数的参数和返回值 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。 确定终止条件 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对 ...
分类:
其他好文 时间:
2021-04-21 12:25:37
阅读次数:
0
方法一:双指针法 采用就地反转,不用额外开辟空间 注意:接收链表的head节点,返回当前节点 方法二:递归法 代码如下: class Node(object): def __init__(self, item, next=None): self.item = item self.next = nex ...
分类:
其他好文 时间:
2021-04-21 12:23:41
阅读次数:
0