[编程题] nk:二叉搜索树的后序遍历 输入输出 无 思路 代码思路: 我们可以采用递归的思想,每次处理本次流程的时候(比如该组元素有n个),拿出最后一个节点当作是root节点,然后,在剩下的n-1 中,确定出前边的左子树部分都比root小,左子树后的右子树部分都比roo大; 比如:一开始调用传入的 ...
分类:
其他好文 时间:
2020-07-28 16:49:32
阅读次数:
63
思路: 1.使用DFS遍历整颗树 2.二叉树的根节点的范围为INT_MIN,INT_MAX. 3.对于当前节点判断是否合法,合法条件:先遍历左子树的最大值是否小于当前节点的值,在遍历右子树,右子树的最小值是否大于当前节点的值 注意: 根节点的边界为 INT_MIN,INT_MAX 左子树的范围:lo ...
分类:
其他好文 时间:
2020-07-27 13:53:58
阅读次数:
61
###思路 很好,这又是一道模板。 求割点的tarjan和求强连通分量的tarjan原理相同,但是实际写法并不完全相同。要注意的是,对于一个点u,它在不同情况下要满足以下两个条件才能称之为割点: (1)low[v]>=dfn[u](v是u在搜索树上的儿子,且u不在环中) (2)u在搜索树上有两个以上 ...
分类:
其他好文 时间:
2020-07-26 23:01:15
阅读次数:
66
链接:https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tree/ 代码 /** * Definition for singly-linked list. * struct ListNode { * int v ...
分类:
其他好文 时间:
2020-07-26 00:07:52
阅读次数:
59
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是 ...
分类:
其他好文 时间:
2020-07-24 21:40:36
阅读次数:
62
3.索引 1.索引的作用:提高数据查询效率 2.常见索引模型:哈希表、有序数组、搜索树 3.哈希表:键 - 值(key - value)。 4.哈希思路:把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置 5.哈希冲突的处理办法:链表 6.哈希表适用场景: ...
分类:
其他好文 时间:
2020-07-24 21:07:26
阅读次数:
68
二叉搜索树 性质:一个节点x左子树所有点的关键字都比x的关键字小,右子树所有点的关键字都比x的关键字大 treap “树堆” “Tree+Heap” 性质:每个点随机分配一个权值,使treap同时满足堆性质和二叉搜索树性质 复杂度:期望O(logn) 设每个节点的关键字是key,随机权值是rand ...
分类:
其他好文 时间:
2020-07-21 23:10:24
阅读次数:
67
题目描述: 给定一个整数 n,生成所有由 1 ... n 为节点所组成的 二叉搜索树 。 今日学习: 1.递归 题解: 1.前两天做了96题是只要求输出数量,动规轻轻松松,就没看递归的题解,今天一思考动规的话太复杂了,临时想的递归,思路对了没实现好 2.3.和我的思路一致,实现方式稍有不同 4.记忆 ...
分类:
其他好文 时间:
2020-07-21 14:17:34
阅读次数:
66
题目 给定一个整数 n,生成所有由 1 ... n 为节点所组成的 二叉搜索树 。 示例: 输入:3 输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3] ] 解释: 以上的输出对应以下 5 种 ...
分类:
其他好文 时间:
2020-07-21 13:38:01
阅读次数:
49
注意点:1、其实就是讲所有走每一步的时候求大致值就好,然后这个值又会对下面进行影响,就像自己思考问题一样 2、然后就是需要注意一下边界问题,因为我们这边求最大值,所以需要对边界进行初始化 #include <iostream> #include <cstring> #include <string> ...