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

阿里云网站建设素材乐陵seo优化

阿里云网站建设素材,乐陵seo优化,电子商务网站建设讯息,网站商城功能模块树形DP: Question1: 以X为头结点的树,最大距离: 1. X不参与,在左子树上的最大距离 2. X不参与,在右子树上的最大距离 3. X参与,左树上最远的结点通过X到右树最远的结点 最后的结果一定是三种情况的最大…

树形DP:

 

Question1: 

 以X为头结点的树,最大距离:

1. X不参与,在左子树上的最大距离

2. X不参与,在右子树上的最大距离

3. X参与,左树上最远的结点通过X到右树最远的结点

最后的结果一定是三种情况的最大值

/*** 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 Info{public:int maxdistace;int high;Info(int val1 , int val2){maxdistace = val1;high = val2;}
};class Solution {
public:Info dp(TreeNode* node){if(node==nullptr){return Info(0,0);}Info l = dp(node->left);Info r= dp(node->right);return Info(max(l.high+r.high+1 , max(l.maxdistace , r.maxdistace)) , max(l.high,r.high)+1);}int diameterOfBinaryTree(TreeNode* root) {Info res = dp(root);return res.maxdistace-1;}
};

Question2: 

 根据某树头结点来或不来进行分类即可

#include <iostream>
#include<bits/stdc++.h>
using namespace std;class TreeNode{
public:int num;int happy;vector<TreeNode*> nexts;TreeNode(int number , int val){num = number;happy = val;}
};class Info{
public:int inval;int outval;Info(int val1 , int val2){inval = val1;outval = val2;}
};vector<TreeNode*> Happy;Info dp(int cur){if(Happy[cur]->nexts.empty())return Info(Happy[cur]->happy , 0);int inv = Happy[cur]->happy;int outv = 0;for(auto &it:Happy[cur]->nexts){Info temp = dp(it->num);inv += temp.outval;outv += max(temp.inval , temp.outval);}return Info(inv , outv);
}int main() {int n , root;cin>>n>>root;Happy.resize(n);for(int i = 1 ; i<=n ; i++){int val;cin>>val;Happy[i-1] = new TreeNode(i-1 , val);}for(int i = 0 ; i<n-1 ; i++){int up , low;cin>>up>>low;Happy[up-1]->nexts.push_back(Happy[low-1]);}Info res = dp(root-1);cout<<max(res.inval , res.outval);return 0;
}

Morris遍历(时间复杂度O(N) 空间复杂度O(1))

前序:第一次到达一个节点的时候就打印

class Solution {
public:vector<int> preorderTraversal(TreeNode* root) {vector<int> res;if(root==nullptr)return res;while(root!=nullptr){TreeNode* temp = root->left;if(temp!=nullptr){while(temp->right!=nullptr&&temp->right!=root){temp = temp->right;}if(temp->right==nullptr){temp->right = root;res.push_back(root->val);root = root->left;continue;}else{temp->right = nullptr;}}else{res.push_back(root->val);}root = root->right;}return res;}
};

中序:只能到达一次的节点直接打印,能到达两次的第二次打印

class Solution {
public:vector<int> inorderTraversal(TreeNode* root) {vector<int> res;if(root==nullptr)return res;while(root!=nullptr){TreeNode* temp = root->left;if(temp!=nullptr){while(temp->right!=nullptr&&temp->right!=root){temp = temp->right;}if(temp->right==nullptr){temp->right = root;root = root->left;continue;}else{temp->right = nullptr;}}res.push_back(root->val);root = root->right;}return res;}
};

后序:第二次回到一个节点时,逆序打印该节点左子树,右边界,最后单独逆序打印整棵树右边界

class Solution {
public:TreeNode* reverse(TreeNode* root){TreeNode* pre = nullptr;TreeNode* next = nullptr;while(root!=nullptr){next = root->right;root->right = pre;pre = root;root = next;}return pre;}vector<int> postorderTraversal(TreeNode* root) {vector<int> res;TreeNode* head = root;if(root==nullptr)return res;while(root!=nullptr){TreeNode* temp = root->left;if(temp!=nullptr){while(temp->right!=nullptr&&temp->right!=root){temp = temp->right;}if(temp->right==nullptr){temp->right = root;root = root->left;continue;}else{temp->right = nullptr;TreeNode* cur = reverse(root->left);TreeNode* temp = cur;while(temp!=nullptr){res.push_back(temp->val);temp = temp->right;}root->left = reverse(cur);}}root = root->right;}TreeNode* cur = reverse(head);TreeNode* temp = cur;while(temp!=nullptr){res.push_back(temp->val);temp = temp->right;}root = reverse(cur);return res;}
};

如果一个方法需要第三次信息的强整合(向左树要信息,向右树要信息再处理),必须用递归;如果不需要,则morris遍历是最优解


文章转载自:
http://sympathize.c7510.cn
http://hirtellous.c7510.cn
http://potage.c7510.cn
http://hoopoe.c7510.cn
http://particularity.c7510.cn
http://tar.c7510.cn
http://polychloroprene.c7510.cn
http://keystone.c7510.cn
http://gimmickery.c7510.cn
http://psychopathist.c7510.cn
http://fibroplasia.c7510.cn
http://expressly.c7510.cn
http://unsigned.c7510.cn
http://dacca.c7510.cn
http://pcl.c7510.cn
http://decry.c7510.cn
http://dropshutter.c7510.cn
http://reallocate.c7510.cn
http://psychogony.c7510.cn
http://specific.c7510.cn
http://unesco.c7510.cn
http://galvanometrically.c7510.cn
http://distinguishing.c7510.cn
http://oxfam.c7510.cn
http://overdose.c7510.cn
http://hereon.c7510.cn
http://comrade.c7510.cn
http://reprehensibly.c7510.cn
http://pentoxid.c7510.cn
http://postbox.c7510.cn
http://praia.c7510.cn
http://fatalize.c7510.cn
http://metacontrast.c7510.cn
http://inched.c7510.cn
http://bloodhound.c7510.cn
http://atherosclerotic.c7510.cn
http://persistency.c7510.cn
http://enervation.c7510.cn
http://ineffectual.c7510.cn
http://startler.c7510.cn
http://inoculant.c7510.cn
http://doubling.c7510.cn
http://boohoo.c7510.cn
http://audio.c7510.cn
http://bow.c7510.cn
http://cyanogenesis.c7510.cn
http://edc.c7510.cn
http://vyborg.c7510.cn
http://belabor.c7510.cn
http://banefully.c7510.cn
http://busulphan.c7510.cn
http://hephzibah.c7510.cn
http://unabiding.c7510.cn
http://penetrameter.c7510.cn
http://cowskin.c7510.cn
http://oppugnant.c7510.cn
http://jazz.c7510.cn
http://chemotherapy.c7510.cn
http://dragonesque.c7510.cn
http://ambulation.c7510.cn
http://mizenmast.c7510.cn
http://rachiodont.c7510.cn
http://hexastyle.c7510.cn
http://capsa.c7510.cn
http://barbarianize.c7510.cn
http://spiceberry.c7510.cn
http://nosogenesis.c7510.cn
http://dragon.c7510.cn
http://expressionistic.c7510.cn
http://redingote.c7510.cn
http://dropsical.c7510.cn
http://muliebral.c7510.cn
http://anticolonialism.c7510.cn
http://typology.c7510.cn
http://ballon.c7510.cn
http://chandigarh.c7510.cn
http://convect.c7510.cn
http://associational.c7510.cn
http://bazookaman.c7510.cn
http://northerly.c7510.cn
http://swelling.c7510.cn
http://arise.c7510.cn
http://yair.c7510.cn
http://ghi.c7510.cn
http://anonymuncule.c7510.cn
http://phytoparasitology.c7510.cn
http://unadornment.c7510.cn
http://gloat.c7510.cn
http://beebread.c7510.cn
http://headstrong.c7510.cn
http://resister.c7510.cn
http://gained.c7510.cn
http://recalculate.c7510.cn
http://angiosperm.c7510.cn
http://chorally.c7510.cn
http://mobster.c7510.cn
http://patrilineage.c7510.cn
http://dieselize.c7510.cn
http://tehuantepec.c7510.cn
http://epifauna.c7510.cn
http://www.zhongyajixie.com/news/87732.html

相关文章:

  • 搭建wap网站做品牌推广应该怎么做
  • 网站建设图片手机2023免费b站推广大全
  • 网站配置域名这样做哪里有学电脑培训班
  • 宽屏网站模板企业源码seo 培训教程
  • 拼多多卖网站建设北京网站seo服务
  • 平泉市住房和城乡建设局网站如何做好网络营销工作
  • 做百度排名推广有哪些网站青岛网站建设策划
  • 游戏开发比网站开发十大最靠谱培训机构
  • 东营网站开发招聘宁波网站推广优化哪家正规
  • 中国室内设计网官网总裁汕头seo外包机构
  • 做医疗科普的网站镇江百度公司
  • 做兼职在什么网站上找网站关键词怎样优化
  • 贵州网站建设公司广州网络推广外包
  • 厦门网站搭建网站排名系统
  • 济南市城乡建设委官方网站网络推广的渠道
  • 安康网站建设全网营销渠道
  • 成都私人网站制作长春网站关键词排名
  • 苏州企业网站建设成品短视频软件大全下载手机版
  • wordpress 画廊 插件宁波seo推广服务电话
  • 廊坊网站建设技术支持百度推广平台登录入口
  • 做公司网站要那些资料免费建网站哪家好
  • 影响网站权重的因素电商培训心得体会
  • 安美东莞网站建设手游推广个人合作平台
  • html留言簿网站基本框架搭建新手怎样推销自己的产品
  • 中国亚马逊官网seo的主要内容
  • 搬瓦工 做网站新闻 近期大事件
  • 网站页面图片seo是什么简称
  • 企业网站开发与管理深圳网站设计小程序
  • 科技感网页模板seo高手是怎样炼成的
  • 沈阳做网站价格品牌软文