
关于树
一些关于树的知识
youngsea8
喜欢学习!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指 Offer 36. 二叉搜索树与双向链表 中序遍历,转化成双向循环链表
剑指 Offer 36. 二叉搜索树与双向链表思路思路,中序遍历的时候顺便修改left和right的指针。官方题解代码class Solution {public: Node*head=NULL,*pre=NULL; void solve(Node*root){ if(root==NULL){ return; } solve(root->left); if(pre!=NULL){原创 2021-04-21 15:42:19 · 146 阅读 · 0 评论 -
c++ STL容器的使用
make_heap()等的使用c++ STL容器中heap的使用本文介绍如何使用STL里的heap(堆)算法。第一次接触heap这种数据结构是在大学的数据结构教材上,它是一棵完全二叉树。在STL中,heap是算法的形式提供给我们使用的。包括下面几个函数:make_heap: 根据指定的迭代器区间以及一个可选的比较函数,来创建一个heap. O(N)push_heap: 把指定区间的最后一个元素插入到heap中. O(logN)pop_heap: 弹出heap顶元素, 将其放置于区间末尾. O(l原创 2021-03-22 20:21:43 · 117 阅读 · 0 评论 -
124. 二叉树中的最大路径和 树形dp,最大深度
思路c++,动态规划,递归。树形dp。官方题解:作者:LeetCode-Solution链接:https://leetcode-cn.com/problems/binary-tree-maximum-path-sum/solution/er-cha-shu-zhong-de-zui-da-lu-jing-he-by-leetcode-/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。首先,考虑实现一个简化的函数 maxGain(node),该原创 2021-03-19 19:00:56 · 164 阅读 · 0 评论 -
1021 Deepest Root (25 分) dfs, 好题,树形dp,求树的深度
解体思路寻找到所有的叶子节点,进行dfs,记录深度,最后输出即可。、又犯了zz错误,自罚三杯。代码#include<cstdio>#include<iostream>#include<algorithm>#include<vector>using namespace std;int n;struct Node{ int v; Node(int v_=0):v(v_){}};vector<vector<N原创 2021-03-19 18:59:30 · 116 阅读 · 0 评论 -
589. N 叉树的前序遍历 栈模拟前序遍历树
589. N 叉树的前序遍历思路栈的模拟,在下面的代码中写出了详细的注释。代码/*// Definition for a Node.class Node {public: int val; vector<Node*> children; Node() {} Node(int _val) { val = _val; } Node(int _val, vector<Node*> _children) {原创 2021-03-15 23:04:31 · 147 阅读 · 0 评论 -
1021 Deepest Root (25 分) dfs,求树的深度
解体思路寻找到所有的叶子节点,进行dfs,记录深度,最后输出即可。、又犯了zz错误,自罚三杯。代码#include<cstdio>#include<iostream>#include<algorithm>#include<vector>using namespace std;int n;struct Node{ int v; Node(int v_=0):v(v_){}};vector<vector<N原创 2021-03-05 22:20:22 · 83 阅读 · 0 评论 -
1020 Tree Traversals (25 分) 后序和中序构建树
思路后序和中序构造二叉树唯一一个注意的地方,在注释中。优快云真垃圾,c++没高亮,还要写成c#include<cstdio>#include<iostream>#include<algorithm>#include<string>#include<cstring>#include<queue>#include<vector>using namespace std;const int MAXN=原创 2021-03-05 21:34:32 · 93 阅读 · 0 评论 -
105. 从前序与中序遍历序列构造二叉树
思路呜呜呜笨蛋把前序遍历和层次遍历搞错了?题目不难,细心即可。根据前序遍历的第一个元素取中序遍历中找将树分成两个部分,不断的递归就好啦,详细的看代码。代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), rig原创 2021-02-21 16:46:56 · 80 阅读 · 0 评论 -
102. 二叉树的层序遍历
解题思路层次遍历树,不难,有一些细节需要仔细的考虑。c++如果构造函数中的所有参数都有默认值,那么不需要再添加无参构造函数层次遍历的话设置一个队列依次压入队列不断的扩展节点就好了,值得注意的是不要把NULL压入队列。代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNo原创 2021-02-18 12:59:23 · 97 阅读 · 0 评论 -
TwoDimensionalRMQ
/** * Two Dimensional DMQ, Time Complexity O(n*m*logn*logm) * the index of array begins at 1 */int val[310][310]; // store valuesint dp[310][310][9][9]; // store maxium value// dp[i][j][k]...原创 2020-04-04 23:20:14 · 125 阅读 · 0 评论 -
RMQ
RMQ 算法详解RMQ 算法是用来求解区间最值的算法, 假设有一个 array a[MAXN];下标从 1 开始, 我们要查询 n 次, 每一次查询为区间[l, r]内的最值?采用暴力的遍历算法, 时间复杂度为 O(m*(r-l+1)), m 为查询的次数采用 RMQ 算法, 可以将时间复杂度降到 O(m+nlogn), 其为建立查询表的时间, 查询的时间为 O(1)具体的解释详见本文...原创 2020-03-21 23:32:13 · 700 阅读 · 0 评论 -
PartitionTree(化分树)
划分树有关于化分树比较详细的介绍有关化分树, 这里先放出 kuangbin 的模板[^1], 随后给出详细的介绍./*划分树(查询区间第k 大) */#pragma warning(disable : 4996)#include <algorithm>#include <cstdio>#include <cstring>#include ...原创 2020-03-18 22:58:00 · 960 阅读 · 0 评论