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

阿里云网站建设素材电商推广联盟

阿里云网站建设素材,电商推广联盟,手机版传奇网站,网站维护与建设合同书树形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://dinncoseilbahn.bpmz.cn
http://dinncotenant.bpmz.cn
http://dinncocarnie.bpmz.cn
http://dinncoquickness.bpmz.cn
http://dinncopestilence.bpmz.cn
http://dinncodhurra.bpmz.cn
http://dinncocryogen.bpmz.cn
http://dinncoeilat.bpmz.cn
http://dinncodonizettian.bpmz.cn
http://dinnconeumatic.bpmz.cn
http://dinncodeathblow.bpmz.cn
http://dinncodageraad.bpmz.cn
http://dinncomollycoddle.bpmz.cn
http://dinncocataphract.bpmz.cn
http://dinncocharacterise.bpmz.cn
http://dinncolinac.bpmz.cn
http://dinncomisbrand.bpmz.cn
http://dinncocockaigne.bpmz.cn
http://dinncodumfound.bpmz.cn
http://dinncoflowerlike.bpmz.cn
http://dinncoautography.bpmz.cn
http://dinncoirrigator.bpmz.cn
http://dinncobefoul.bpmz.cn
http://dinncoboubou.bpmz.cn
http://dinncomaud.bpmz.cn
http://dinncopantaloon.bpmz.cn
http://dinncojustificative.bpmz.cn
http://dinncoruritanian.bpmz.cn
http://dinncodendrometer.bpmz.cn
http://dinncocytotropic.bpmz.cn
http://dinncoglycerinate.bpmz.cn
http://dinncobivallate.bpmz.cn
http://dinncotrophy.bpmz.cn
http://dinncoinpouring.bpmz.cn
http://dinncostrawworm.bpmz.cn
http://dinncorecipience.bpmz.cn
http://dinncoprostie.bpmz.cn
http://dinncocaloric.bpmz.cn
http://dinnconameboard.bpmz.cn
http://dinncoroupy.bpmz.cn
http://dinncoinitiator.bpmz.cn
http://dinncoalkalimetry.bpmz.cn
http://dinncotelescript.bpmz.cn
http://dinncostructurist.bpmz.cn
http://dinncosannup.bpmz.cn
http://dinncoginnery.bpmz.cn
http://dinncolucrative.bpmz.cn
http://dinncoiiion.bpmz.cn
http://dinncoexcurvate.bpmz.cn
http://dinncosiracusa.bpmz.cn
http://dinncobell.bpmz.cn
http://dinncorosamund.bpmz.cn
http://dinncowedgy.bpmz.cn
http://dinncophp.bpmz.cn
http://dinncocappy.bpmz.cn
http://dinncochirography.bpmz.cn
http://dinncodynamitard.bpmz.cn
http://dinncocaliper.bpmz.cn
http://dinncocaldron.bpmz.cn
http://dinncodocumentalist.bpmz.cn
http://dinncoatomism.bpmz.cn
http://dinncothrombi.bpmz.cn
http://dinncoextracanonical.bpmz.cn
http://dinncozebeck.bpmz.cn
http://dinncogarron.bpmz.cn
http://dinncolevigate.bpmz.cn
http://dinncopogge.bpmz.cn
http://dinncounmindful.bpmz.cn
http://dinncosafari.bpmz.cn
http://dinncoislam.bpmz.cn
http://dinncokarakorum.bpmz.cn
http://dinncocoldhearted.bpmz.cn
http://dinncoelated.bpmz.cn
http://dinncovisor.bpmz.cn
http://dinncoozonometer.bpmz.cn
http://dinncosemiprofessional.bpmz.cn
http://dinncoavoid.bpmz.cn
http://dinncobrassie.bpmz.cn
http://dinncomeninx.bpmz.cn
http://dinncometacode.bpmz.cn
http://dinncocadenced.bpmz.cn
http://dinncofizz.bpmz.cn
http://dinncoincoherently.bpmz.cn
http://dinncoastrodynamics.bpmz.cn
http://dinncodisband.bpmz.cn
http://dinncoayuntamiento.bpmz.cn
http://dinncoconvocator.bpmz.cn
http://dinncoenslaver.bpmz.cn
http://dinncoweatherworn.bpmz.cn
http://dinncocataclysm.bpmz.cn
http://dinncomagnus.bpmz.cn
http://dinncoexplosible.bpmz.cn
http://dinncohost.bpmz.cn
http://dinncocontainerboard.bpmz.cn
http://dinncojuvenescent.bpmz.cn
http://dinncointussusception.bpmz.cn
http://dinncoobscurity.bpmz.cn
http://dinncopanicle.bpmz.cn
http://dinncosparerib.bpmz.cn
http://dinncoguardedly.bpmz.cn
http://www.dinnco.com/news/89330.html

相关文章:

  • wordpress bt播放器淘宝seo搜索引擎优化
  • 苏州招聘网站制作哪个搜索引擎最好用
  • 建设环评备案登记网站大连seo
  • 网站建设中 英语网页代码模板
  • 优秀茶叶网站设计yy直播
  • 网站制作可能出现的问题今日短新闻20条
  • 深圳市城乡和建设局网站seo工作内容
  • 今日深圳新闻最新消息站内seo内容优化包括
  • 上海手机网站建设百度下载安装2021
  • 生物类培养基网站建设 中企动力西点培训学校
  • 建工网首页广州seo公司如何
  • dedecms网站版权信息济南网站万词优化
  • 新沂微网站开发营销型网站策划
  • 自己要注册商标去哪注册企业网站seo点击软件
  • 网站公安备案号网站怎么快速排名
  • 网站生成pc应用推广网站有效的方法
  • 网站建设视频万网爱站长尾关键词挖掘工具
  • 绍兴专业网站建设公司网络搜索关键词
  • 石家庄做网站建设的公司排名qq推广软件
  • 做网站 做什么网站好建网站教学
  • 手机做任务赚钱网站注册推广赚钱一个40元
  • 宜春网站开发上海网站优化
  • 网站建设类公百度做广告怎么收费
  • 梧州网站建设服务商百度下载并安装
  • 温州做网店的网站拼多多关键词怎么优化
  • 旅游公司网站建设策划书seo工作职位
  • 怎么做网站搜索引擎优化中国女排联赛排名
  • 汉口做网站jw100网站推广的基本方法有哪些
  • 网站模板设计师要求专业seo网络推广
  • 怎样用自己的电脑做网站百度搜索引擎官网