地址:https://leetcode-cn.com/problems/minimum-height-tree-lcci/ <?php /** 面试题 04.02. 最小高度树 给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。 示例: 给定有序数组: [- ...
分类:
其他好文 时间:
2020-05-21 16:03:18
阅读次数:
55
题目: 将有序数组转换为二叉搜索树:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 思路: 因为输入是递增的数组,为了转换成二叉搜索树,因此需要找到整个树的根节点,之后使用递归来的得到每个子树 ...
分类:
编程语言 时间:
2020-05-19 10:54:56
阅读次数:
56
1、什么是线段树? 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,实际应用时一般还要开4N的数组以免越界,因此有时需要离 ...
分类:
其他好文 时间:
2020-05-18 21:05:43
阅读次数:
42
题目: 验证二叉搜索树:给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 思路: 遇到树第一想到了递归,用递归来实现。 程序 : # Defin ...
分类:
编程语言 时间:
2020-05-18 21:00:54
阅读次数:
103
Q:给定一个二叉搜索树,同时给定最小边界L?和最大边界?R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R =L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。 A: 思路分析: 修剪一棵树,如果根结点的值小于给定的左边界L,那么当前结点及其左子树就会被修 ...
分类:
其他好文 时间:
2020-05-18 14:33:46
阅读次数:
38
什么是AVL树? 首先,回忆一下二分搜索树的问题,在二分搜索树中有一个很严重的问题,什么问题呢? 在二分搜索树中如果顺序添加元素会转化为链表,这就会大大降低二分搜索树的效率。比如说1、2、3、4、5、6。 二分搜索树如图: 那么如何解决这个问题? 需要在二分搜索树的基础上添加一定的机制,使得二分搜索 ...
分类:
其他好文 时间:
2020-05-17 13:29:42
阅读次数:
46
问题: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 分析:二叉搜索树的中序遍历将得到升序结果。 (1)使用List结构记录中序遍历结果. (2)将list中的元素构建为双向链表。 code: public TreeNode Co ...
分类:
其他好文 时间:
2020-05-16 15:10:55
阅读次数:
62
题目: 二叉搜索树迭代器:实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。 思路: 二叉搜索树使用中序,然后弹出栈底。 程序: # Definition for a binary tree node. # class Tre ...
分类:
编程语言 时间:
2020-05-16 10:55:17
阅读次数:
70
团队训练(五) 二分查找(1) 前言:先分享一波学二分的心理过程,这几道二分题居然差不多磨了十来天,一开始仅仅是把一些模板记下来,然后现在终于有一丝丝理解,看到很多文章都说,只有10%的程序猿会二分,我也不懂真假,反正我觉得就有那么一点点玄学,既要考虑边界问题,又要考虑左右区间问题,还要考虑返回值等 ...
分类:
其他好文 时间:
2020-05-15 20:40:41
阅读次数:
84
考虑随机事件序列$\{A_0, A_1, A_2, \dots\}$,随机变量$T$为其停时。我们希望求$\mathbb{E}[T]$,但一般情况下是比较困难的。 可以考虑构造势函数$\phi(A)$,满足 $ \mathbb{E}[\, \phi(A_{t+1})-\phi(A_t) \mid A ...
分类:
其他好文 时间:
2020-05-14 19:30:12
阅读次数:
96