//https://blog.csdn.net/code92007/article/details/94591571 笛卡尔树是形如上图的一棵树,每个点有值{Key,Val},Val满足堆的性质,Key满足二叉搜索树性质 构造(区间最小): O(n) 性质1:对于已经构造好的笛卡尔树,子树的根节点的 ...
分类:
其他好文 时间:
2020-09-23 23:50:26
阅读次数:
43
方法一:BFS模板的应用。 总结的DFS、BFS模板参考:https://www.cnblogs.com/panweiwei/p/13065661.html class Solution(object): # BFS def kthLargest(self, root, k): """ :type ...
分类:
其他好文 时间:
2020-09-18 00:03:27
阅读次数:
35
二叉搜索树(BST, Binary Search Tree) 1. 二叉树也是一颗二叉树, 可以为空 2. 如果不为空,则满足以下条件 1. 非空左子树的所有键值小于其根节点的键值 2. 非空右子树的所有键值大于其根节点的键值 3. 左, 右子树本身也是搜索树 3. 二叉搜索树的特点 1. 二叉搜索 ...
分类:
其他好文 时间:
2020-09-17 23:06:23
阅读次数:
31
平衡树 1. 二叉搜索树的优点 二叉搜索树作为数据存储的结构,最大的优势是可以快速找到给定关键字的项,并且可以快速的实现插入和删除数据操作 因为二叉搜索树采用了二分查找的策略 2. 二叉搜索树存在的问题 但是二叉搜索树有一个麻烦的问题:若插入的数据是一个有序数列(从小到大/从大到小),会造成二叉搜索 ...
分类:
其他好文 时间:
2020-09-17 23:05:38
阅读次数:
28
二叉平衡树: 平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、T ...
分类:
其他好文 时间:
2020-09-17 12:00:19
阅读次数:
59
题目 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平 ...
分类:
编程语言 时间:
2020-09-16 12:21:04
阅读次数:
31
尝试使用set记录幂次,实际边界问题较多,下次谨慎使用, set不太适用递减输出!! 最后一个点输出错误,这是因为得到的最后结果为0,需要只输出一个0(后面没有空格)。 #include<cstdio> #include<set> #include<string.h> using namespace ...
分类:
其他好文 时间:
2020-09-15 21:04:11
阅读次数:
35
今天是LeetCode专题第61篇文章,我们一起来看的是LeetCode95题,Unique Binary Search Trees II(不同的二叉搜索树II)。 这道题的官方难度是Medium,点赞2298,反对160,通过率40.5%。我也仿照steam当中游戏评论的分级,给LeetCode中 ...
分类:
其他好文 时间:
2020-09-14 18:50:19
阅读次数:
39
闲的没事翻新题,突然想起笛卡尔树还没学,于是写了写笛卡尔树的模板题。 P5854 【模板】笛卡尔树 题意 给一个排列p1pn,i号点权值为pi,要求建一棵以编号为关键字的二叉搜索树(中序序列为1n),且以权值为关键字的小根堆。 n ? 1e7 思路分析 难度在于O(n)建树。但既然编号是连续的,那么 ...
分类:
其他好文 时间:
2020-09-08 20:42:17
阅读次数:
37
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 Python # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.r ...
分类:
其他好文 时间:
2020-09-02 16:53:04
阅读次数:
42