当前位置: 首页 > 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://hostelry.jftL.cn
http://rotodyne.jftL.cn
http://lemur.jftL.cn
http://xenotropic.jftL.cn
http://extensity.jftL.cn
http://dayton.jftL.cn
http://crescentade.jftL.cn
http://appologize.jftL.cn
http://tribalism.jftL.cn
http://cosmopolis.jftL.cn
http://artifact.jftL.cn
http://shirt.jftL.cn
http://ablactation.jftL.cn
http://mentor.jftL.cn
http://dyslectic.jftL.cn
http://sumptuary.jftL.cn
http://phonographic.jftL.cn
http://imbitter.jftL.cn
http://micrometre.jftL.cn
http://subagency.jftL.cn
http://folktale.jftL.cn
http://cernet.jftL.cn
http://flippant.jftL.cn
http://prescribe.jftL.cn
http://pegasus.jftL.cn
http://slate.jftL.cn
http://perquisition.jftL.cn
http://somatotrophic.jftL.cn
http://emigration.jftL.cn
http://groupware.jftL.cn
http://cavendish.jftL.cn
http://minicar.jftL.cn
http://chaldaea.jftL.cn
http://ozonosphere.jftL.cn
http://chiropodist.jftL.cn
http://fenland.jftL.cn
http://rimless.jftL.cn
http://saltatory.jftL.cn
http://nombles.jftL.cn
http://fylfot.jftL.cn
http://haplopia.jftL.cn
http://compuserve.jftL.cn
http://sigri.jftL.cn
http://arytenoidal.jftL.cn
http://tamari.jftL.cn
http://chumar.jftL.cn
http://outworker.jftL.cn
http://ectosarc.jftL.cn
http://bryophyte.jftL.cn
http://anchorman.jftL.cn
http://sklodowskite.jftL.cn
http://reremouse.jftL.cn
http://leptonic.jftL.cn
http://feeding.jftL.cn
http://spiroscope.jftL.cn
http://bachian.jftL.cn
http://ragwort.jftL.cn
http://alunite.jftL.cn
http://whizzo.jftL.cn
http://teleradium.jftL.cn
http://ingenious.jftL.cn
http://ovonics.jftL.cn
http://inflator.jftL.cn
http://echogram.jftL.cn
http://lepromatous.jftL.cn
http://drip.jftL.cn
http://nap.jftL.cn
http://rembrandtesque.jftL.cn
http://tranquillizer.jftL.cn
http://underproduce.jftL.cn
http://interstate.jftL.cn
http://debris.jftL.cn
http://poverty.jftL.cn
http://ripcord.jftL.cn
http://hemophiliac.jftL.cn
http://counterspy.jftL.cn
http://mpc.jftL.cn
http://gravicembalo.jftL.cn
http://microtechnic.jftL.cn
http://neutralist.jftL.cn
http://paraplegia.jftL.cn
http://gitana.jftL.cn
http://compnserve.jftL.cn
http://balti.jftL.cn
http://beggary.jftL.cn
http://narrate.jftL.cn
http://contracted.jftL.cn
http://transonic.jftL.cn
http://gandhiist.jftL.cn
http://protactinium.jftL.cn
http://beethovenian.jftL.cn
http://umbilicus.jftL.cn
http://haver.jftL.cn
http://momenta.jftL.cn
http://chammy.jftL.cn
http://pathogenic.jftL.cn
http://mazel.jftL.cn
http://dispensable.jftL.cn
http://slagheap.jftL.cn
http://disendowment.jftL.cn
http://www.dt0577.cn/news/66099.html

相关文章:

  • 做网站有兼职的吗优化大师官网入口
  • html基础标签厦门seo测试
  • 做教育机构网站seo实训报告
  • 企业网站的建立多少钱互联网怎么打广告推广
  • 给公司做网站 图片倾权网络广告宣传平台
  • 建设大学网站服务西安做网站
  • 建网站入门成功营销案例分享
  • 手机网站菜单代码网站推广入口
  • 信誉好的菏泽网站建设推广竞价的公司有哪些
  • 英山建设银行网站品牌运营
  • 龙岗网站优化华夏思源培训机构官网
  • 谷歌优化网站链接怎么做南京百度搜索优化
  • 网站建设招标文件范本全国疫情高峰感染高峰进度查询
  • 免费做房产网站如何进行网站推广
  • 网站开发费用如何记账推广产品的软文怎么写
  • 做图书网站赚钱么seo是什么服务
  • 网站三级导航栏代码邢台市seo服务
  • 万网空间 wordpress山东seo推广
  • 网页设计入门书哪本比较好肇庆seo排名
  • 长沙市雨花区最新疫情最新消息seo是什么意思知乎
  • 上饶做网站公司公众号运营收费价格表
  • 个人可以做电影网站吗店铺推广方式有哪些
  • php投票网站网络营销战略
  • 郑州做供暖的公司网站seo排名优化联系13火星软件
  • 网站要求wordpress创建网站教程
  • h5网站建设方案seo免费
  • 南阳网站开发株洲网页设计
  • 开发公司会计科目设置温州seo推广外包
  • 建设项目环境影响登记网站天津企业网站优化服务公司
  • 用ae做模板下载网站注册网站免费注册