https://leetcode-cn.com/problems/find-mode-in-binary-search-tree/ class Solution { public: int count = 0, max_count = 0; TreeNode* pre = NULL; vector< ...
分类:
其他好文 时间:
2020-09-24 22:11:03
阅读次数:
80
二叉搜索树(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
题意:给定n个数构建完全二叉树,输出完全二叉树的层序遍历 思路:二叉树的中序遍历建树即为输出 #include<cstdio> #include<queue> #include<vector> #include<algorithm> using namespace std; const int N ...
分类:
其他好文 时间:
2020-09-17 23:04:06
阅读次数:
30
问题描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], tar ...
分类:
编程语言 时间:
2020-09-17 21:50:55
阅读次数:
30
topic:ThreeSum 目标:用于统计一个数组中和为 0 的三元组数量,每个三元组都不重复 方法 方法一:最简单方法 方法二:先排序,对两元素求和,再用二分查找寻找相反数 方法三:先排序,再用左右两指针查找一个数的相反数 方法一:最简单方法 public class ThreeSumSlow ...
分类:
编程语言 时间:
2020-09-17 18:58:54
阅读次数:
29
?分查找. 每次能够排除掉一半的数据. 查找的效率非常高. 但是局限性比较大. 必须是有序列才可以使用二分查找 要求: 查找的序列必须是有序序列. 三种方法: 1.纯算法 lst = [11, 22, 33, 44, 55, 66, 77, 88, 99, 123, 234, 345, 456, 5 ...
分类:
编程语言 时间:
2020-09-17 18:43:41
阅读次数:
31
Complete Binary Search Tree PAT-1064 本次因为涉及到完全二叉排序树,所以可以使用数组的形式来存储二叉排序树 对输入序列排序后,得到的是中序遍历二叉排序树的序列。对这颗二叉排序树进行中序遍历,将每个结点的值放入二叉树的存储数组中,最后遍历数组即可求出层次遍历的序列。 ...
分类:
编程语言 时间:
2020-09-17 13:57:32
阅读次数:
29
二叉平衡树: 平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、T ...
分类:
其他好文 时间:
2020-09-17 12:00:19
阅读次数:
59
/** *@param 参数一:查找的数组 参数二:要找的值 * */ public static int dichotomia(int[] arry,int key) { int min = 0; int max = arry.length() - 1; int mid = (min + max) ...
分类:
其他好文 时间:
2020-09-15 21:24:27
阅读次数:
45