题目 Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. 思路 这一次说的是一个普通的二叉树,给出两个节点。求他们的最低公共父节点。 回忆一下,当这棵二叉树是二分查找树的 ...
分类:
其他好文 时间:
2017-08-05 13:15:52
阅读次数:
129
题目链接Vijos 题目链接UOJ 转载一个大佬的题解: 点击这里->银牌爷题解 主要考察二分查找、树上倍增、贪心、“树上前缀和”。题目是一颗树,要求将一条边的权值变为0,使得所有运输计划的最大时间最小。直觉告诉我们,这是一个树上倍增的题目,但是它却不像前几年的 Day2T3 开车旅行那样纯倍增,或 ...
分类:
其他好文 时间:
2017-07-28 23:41:44
阅读次数:
246
一、2-3查找树 二叉查找树可以使用于大多数应用场景,但是最坏情况下性能太差。 本节将介绍一种二分查找树,它的运行时间可以保证在对数级别内。 1、定义 这里引进3-节点的概念,3-节点含有两个键和三个链接。 2-节点是标准二叉查找树中的节点,含有一个键和两个链接。 Definition. A 2-3 ...
分类:
其他好文 时间:
2017-06-07 00:54:57
阅读次数:
255
二分查找树特点: (1) 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2) 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3) 任意节点的左、右子树也分别为二叉查找树。 (4) 没有键值相等的节点(no duplicate nodes)。 前序遍历 ...
分类:
编程语言 时间:
2017-03-10 23:43:13
阅读次数:
223
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST. 给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树 ...
分类:
其他好文 时间:
2016-08-29 12:36:11
阅读次数:
152
题目给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树解题找到中间点,建立树的根结点
左右半边递归
注意:
右半边链表可以根据找到的中间节点进行递归
左半边要找到结束位置,这里我新建了一个链表/**
* Definition for ListNode.
* public class ListNode {
* int val;
* ListNode...
分类:
编程语言 时间:
2016-07-12 10:33:23
阅读次数:
189
二分查找是一种效率比较高的查找算法,但是它依赖于数组有序的存储,二分查找的过程可以用二叉树来形容描述:把当前查找区间的中间位置上的结点作为根,左子表和右子表中的结点分别作为根节点的左子树和右子树。由此得到的二叉树,称为描述二分查找树的判定树(Decision Tree)或比较树(Comprision Tree)。时间复杂度为O(logN)。...
分类:
其他好文 时间:
2016-05-12 16:23:42
阅读次数:
552
题意: 有N个队伍(1 <= N <= 100,000),每个队伍开始有ai个人[0 <= ai<= 100,000,000],有Q个操作[0<=Q<= 500,000] 操作分为三种,1 A:表示在第A个队列加一个人。 2 X:表示求长度大于等于X队列数量。3 Y:表示所有长度大于等于Y的队列减去 ...
分类:
编程语言 时间:
2016-05-02 18:33:06
阅读次数:
168
//二叉查找树的定义,查询,插入,删除public class BSTree<T extends Comparable<T>>{ private BSTNode<T> mRoot;//定义根节点 //定义节点 private class BSTNode<T extends Comparable<T>
分类:
其他好文 时间:
2016-02-29 21:31:11
阅读次数:
242
需要注意的是,左子树的所有节点都要比根节点小,而非只是其左孩子比其小,右子树同样。这是很容易出错的一点是,很多人往往只考虑了每个根节点比其左孩子大比其右孩子小。如下面非二分查找树,如果只比较节点和其左右孩子的关系大小,它是满足的。 5 / \4 10 / \ 3 11错...
分类:
其他好文 时间:
2015-12-30 19:22:40
阅读次数:
141