何为跳表? 跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。 跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找。 跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性能。 跳表详解 有序链表 考虑一个有序链表,我们要查找3、7、17这几个元素,我们只能从头开始遍 ...
分类:
其他好文 时间:
2020-05-06 13:52:50
阅读次数:
61
题目: 解答: 1 class Solution { 2 public: 3 int searchInsert(vector<int> &nums, int target) 4 { 5 int left = 0; 6 int right = nums.size() - 1; 7 8 while(le ...
分类:
其他好文 时间:
2020-05-05 12:40:50
阅读次数:
49
题目: 解答: 按杨氏矩阵的方法求解,时间复杂度为O(m+n),其中m为矩阵的行数,n为矩阵的列数。 1 class Solution { 2 public: 3 bool searchMatrix(vector<vector<int>>& matrix, int target) 4 { 5 if( ...
分类:
其他好文 时间:
2020-05-05 12:37:47
阅读次数:
47
题目: 解答: 1 class Solution { 2 public: 3 int search(vector<int>& nums, int target) 4 { 5 int l = 0; 6 int r = nums.size() -1; 7 8 while (l <= r) 9 { 10 ...
分类:
编程语言 时间:
2020-05-05 12:36:15
阅读次数:
57
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 思路: ...
分类:
其他好文 时间:
2020-05-05 11:11:57
阅读次数:
65
https://leetcode-cn.com/problems/validate-binary-search-tree/ 树题,没什么好说的,直接递归就完事了。 第一种,使用中序遍历将输出值保存在list中,然后检查这个list是否升序的就可以AC.不过这个方法比较慢,3ms,java上只击败了1 ...
分类:
其他好文 时间:
2020-05-05 11:01:33
阅读次数:
48
一、二叉查找/搜索/排序树BST (binary search/sort tree) 或者是一棵空树; 或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值; 若它的右子树上所有结点的值均大于它的根节点的值; 它的左、右子树也分别为二叉排序树。 二、平衡二叉树( ...
分类:
其他好文 时间:
2020-05-04 21:26:00
阅读次数:
67
题目: 解答: 思路就是先计算每个字符串中,26个字母每个出现的次数(fun函数的功能),然后就是二分查找找出答案。这里二分查找用的函数是标准库的 upper_bound。 1 class Solution { 2 public: 3 vector<int> numSmallerByFrequenc ...
分类:
其他好文 时间:
2020-05-03 23:08:27
阅读次数:
119
使用二分查找法:前提条件为序列有序,经常在以下两种情况下使用 1.在[1,2,3,4,5,6,7]查找一个目标target数字。相比线性遍历时间复杂度O(n),二分查找时间复杂度为O(logn)。 2.在[0,0,0,1,1,1,1]查找元素1第一次出现的位置。 JAVA /* The isBadV ...
分类:
其他好文 时间:
2020-05-03 20:53:52
阅读次数:
84
The lowest common ancestor (LCA) of two nodes U and V in a tree is the deepest node that has both U and V as descendants. A binary search tree (BST) i ...
分类:
其他好文 时间:
2020-05-02 14:54:12
阅读次数:
50