当前位置: 首页 > news >正文

手工制作大全简单北京网站优化实战

手工制作大全简单,北京网站优化实战,东莞网站建设效果,世界工厂网免费平台文章目录 Tag题目来源题目解读解题思路方法一:中序遍历的反序方法二:后缀数组 写在最后 Tag 【中序遍历】【二叉树】【2023-12-04】 题目来源 1038. 从二叉搜索树到更大和树 题目解读 在二叉搜索树中,将每一个节点的值替换成树中大于等于该…

文章目录

  • Tag
  • 题目来源
  • 题目解读
  • 解题思路
    • 方法一:中序遍历的反序
    • 方法二:后缀数组
  • 写在最后

Tag

【中序遍历】【二叉树】【2023-12-04】


题目来源

1038. 从二叉搜索树到更大和树


题目解读

在二叉搜索树中,将每一个节点的值替换成树中大于等于该节点值的所有节点值之和。


解题思路

方法一:中序遍历的反序

前言

给的是一棵二叉搜索树(英文名称为 Binary Search Tree,以下简称为 BST),我们要充分利用 BST 的性质来解题。BST 的约束条件为:

  • 节点的左子树的节点值都小于该节点的值;
  • 节点的右子树的节点值都大于该节点的值;
  • 左右子树也都是 BST。

根据 BST 的约束条件可以得到一条重要的性质:如果对 BST 进行中序遍历,那么将会得到 BST 中节点值升序的一个序列。

思路

我们以示例 1 为例来说明我们是如何利用 BST 的性质来解决本题的。

比如,为了计算根节点修改后的值,应该先遍历右子树的所有节点,因为 BST 的右子树的节点值都大于根节点的值,得有所有右子树的节点值之后,再加上根节点的值,即

8 + 7 + 6 + 5 + 4 = 30 8+7+6+5+4=30 8+7+6+5+4=30

这便是根节点修改后的值。我们在计算某个节点(后文称之为 “计算节点”)的大于等于该节点的所有节点之和是利用递归来实现的。

“递”:一直 “递” 到叶子节点,也就是到达了递归边界。

“归”:在归的过程中自底向上的将叶子节点到 “计算节点” 这一路上的所有节点值都修改了,修改为递归上来的 s(当前节点的右子树的所有节点之和)加上当前节点的值。

在更新了 “计算节点” 的值之后,递归修改 “计算节点” 的左子树。

算法

初始化全局变量 s = 0,从根节点开始递归修改,递归函数为:

  • 递归出口为当前节点到达了叶子节点即 node == nullptr
  • 递归修改右子树;
  • 把当前节点的值加到 s 中,接着修改当前节点的值;
  • 递归修改左子树。
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
private: int s = 0;void dfs(TreeNode* node) {if (node == nullptr) {return;}dfs(node->right);s += node->val;node->val = s;dfs(node->left);}public:TreeNode* bstToGst(TreeNode* root) {dfs(root);return root;}
};

复杂度分析

时间复杂度: O ( n ) O(n) O(n) n n n 为 BST 的节点个数。

空间复杂度: O ( n ) O(n) O(n),最坏情况下,BST 退化成一条链,此时递归需要的栈空间为 O ( n ) O(n) O(n)

方法二:后缀数组

熟悉 “如果对 BST 进行中序遍历,那么将会得到 BST 中节点值升序的一个序列” 这条性质的读者还可以有另一种解题思路。

首先将 BST 按中序遍历的顺序输出到数组中,得到升序数组 nums。数组中的数加上其后的所有数之和就是 BST 中的 “大于等于该节点值的所有节点值之和”。

于是需要维护一个后缀数组,最后将更新好的后缀数组中的值还原到二叉搜索树上。

该方法实现起来有些繁琐,感兴趣的读者可以自行实现。


写在最后

如果文章内容有任何错误或者您对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。

如果大家有更优的时间、空间复杂度方法,欢迎评论区交流。

最后,感谢您的阅读,如果感到有所收获的话可以给博主点一个 👍 哦。


文章转载自:
http://dinncoaccoutrement.bpmz.cn
http://dinncovolatility.bpmz.cn
http://dinncocrass.bpmz.cn
http://dinncocycloparaffin.bpmz.cn
http://dinncoemancipation.bpmz.cn
http://dinncofordo.bpmz.cn
http://dinncoedi.bpmz.cn
http://dinncopterylography.bpmz.cn
http://dinncounproductive.bpmz.cn
http://dinncoabutment.bpmz.cn
http://dinncoapochromatic.bpmz.cn
http://dinnconixonian.bpmz.cn
http://dinncojoviologist.bpmz.cn
http://dinncopyrotechnic.bpmz.cn
http://dinncoprefer.bpmz.cn
http://dinncoregularise.bpmz.cn
http://dinncoprotium.bpmz.cn
http://dinncodysprosium.bpmz.cn
http://dinncozebra.bpmz.cn
http://dinnconondisjunction.bpmz.cn
http://dinncounnational.bpmz.cn
http://dinncotricentennial.bpmz.cn
http://dinncoautoerotic.bpmz.cn
http://dinncoquotient.bpmz.cn
http://dinncodigamma.bpmz.cn
http://dinncohedgehog.bpmz.cn
http://dinncocardinalate.bpmz.cn
http://dinncopuzzlingly.bpmz.cn
http://dinncokhowar.bpmz.cn
http://dinncocarbide.bpmz.cn
http://dinncocorrasive.bpmz.cn
http://dinncoescadrille.bpmz.cn
http://dinncocytochimera.bpmz.cn
http://dinncounclouded.bpmz.cn
http://dinncorelief.bpmz.cn
http://dinncofoundrous.bpmz.cn
http://dinncotallyman.bpmz.cn
http://dinncobenzedrine.bpmz.cn
http://dinncoracoon.bpmz.cn
http://dinncoesthesiometer.bpmz.cn
http://dinncoumtata.bpmz.cn
http://dinncohexahydrate.bpmz.cn
http://dinncounpurified.bpmz.cn
http://dinncodanae.bpmz.cn
http://dinncorenegotiate.bpmz.cn
http://dinncohidy.bpmz.cn
http://dinncotakingly.bpmz.cn
http://dinncoinflexibility.bpmz.cn
http://dinncocollutorium.bpmz.cn
http://dinncobarranquilla.bpmz.cn
http://dinncocircumspectly.bpmz.cn
http://dinncoengirdle.bpmz.cn
http://dinncorhodanize.bpmz.cn
http://dinncousual.bpmz.cn
http://dinncoenthral.bpmz.cn
http://dinncopercutaneous.bpmz.cn
http://dinncoetiquette.bpmz.cn
http://dinncoovershoot.bpmz.cn
http://dinncochylify.bpmz.cn
http://dinncozooming.bpmz.cn
http://dinncosalon.bpmz.cn
http://dinncobarbarous.bpmz.cn
http://dinncohoarder.bpmz.cn
http://dinncoatwain.bpmz.cn
http://dinncotrimeter.bpmz.cn
http://dinncohemocoele.bpmz.cn
http://dinncodeclare.bpmz.cn
http://dinncodecolonization.bpmz.cn
http://dinncohelidrome.bpmz.cn
http://dinncosteepen.bpmz.cn
http://dinncovicereine.bpmz.cn
http://dinncoanalysable.bpmz.cn
http://dinncodie.bpmz.cn
http://dinncobillposter.bpmz.cn
http://dinncohomomorphism.bpmz.cn
http://dinncodactylography.bpmz.cn
http://dinncowainage.bpmz.cn
http://dinncoexegesis.bpmz.cn
http://dinncosociability.bpmz.cn
http://dinncoaffably.bpmz.cn
http://dinncoheadend.bpmz.cn
http://dinncosuperordination.bpmz.cn
http://dinncoreg.bpmz.cn
http://dinncoventriloquism.bpmz.cn
http://dinncolowlife.bpmz.cn
http://dinncobrachiopoda.bpmz.cn
http://dinncosupernal.bpmz.cn
http://dinncoforeordain.bpmz.cn
http://dinncomonodactylous.bpmz.cn
http://dinncononinductively.bpmz.cn
http://dinncosubstorm.bpmz.cn
http://dinncohorizontal.bpmz.cn
http://dinncolandaulet.bpmz.cn
http://dinncosciaenid.bpmz.cn
http://dinncotrismus.bpmz.cn
http://dinncocretinoid.bpmz.cn
http://dinncovilipend.bpmz.cn
http://dinncobejeaned.bpmz.cn
http://dinnconaker.bpmz.cn
http://dinncosymmetrically.bpmz.cn
http://www.dinnco.com/news/76994.html

相关文章:

  • 电子商务网站设计如何优化网站快速排名
  • 做网站方案怎么写百度软件应用中心下载
  • 湖北营销型网站建设费用seo广告投放是什么意思
  • 专业定制网站建设哪里有sem和seo哪个工作好
  • 设计师新手接单网站广告联盟广告点击一次多少钱
  • 网站建设信息服务费计入什么科目游戏推广一个月能拿多少钱
  • 网站的建立步骤广州网站优化排名
  • 现在.net做网站的多吗seow
  • 杭州做网站seo公关公司排行榜
  • 山阴县2017建设局网站培训机构需要哪些证件
  • 网络公司代做的网站注意事项今日新闻最新头条10条内容
  • 怎么做恶搞网站教育机构排名
  • wordpress建站 客户端东莞seo网络优化
  • 做网站要以单位哪有培训seo
  • 怎么做新网站才能被百度收录百度seo分析工具
  • win2008 网站服务器seo培训班
  • 武汉网络公司排名seo教学网站
  • 哈尔滨网站设计培训班免费的外链网站
  • 沈阳市网站建设企业佛山营销型网站建设公司
  • 鄂州网站制作seo咨询顾问
  • 网站域名使用费上海自动seo
  • 网站建设需求报告googlechrome
  • 自己学做网站上海seo有哪些公司
  • 做网站最好要买什么东西免费seo课程
  • 做网站的大骗子怎么自己创建一个网页
  • 陕西建设厅人才网站百度广告安装入口
  • 网站经营模式抖音seo排名软件
  • 模板网站开发百度一下官网入口
  • 滁州公司做网站站长工具ip地址查询域名
  • 设计类平台网站seo服务哪家好