博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA548
阅读量:6771 次
发布时间:2019-06-26

本文共 1579 字,大约阅读时间需要 5 分钟。

题意:

根据二叉树中序和后序建立二叉树,从根结点开始计算和到叶子结点,输出总和最小的叶子结点,如果有俩个和一样大,输出叶子结点最小的

AC:80ms

#include
#include
#include
#include
#include
#include
using namespace std;struct Tree{ int curTotal; Tree() { curTotal = 0; }};void buildTree(const int* in, const int* post, int curTotal, int* minTotal, int tl, int * leaf);int readInt(string str, int * const a){ istringstream in(str); int i; int total = 0; while (in >> i) a[total++] = i; return total;}int main(){ //freopen("d:\\1.txt", "r", stdin); string str1, str2; while (getline(cin, str1)) { getline(cin, str2); int inorder[100000]; int postorder[100000]; int tl = readInt(str1, inorder); readInt(str2, postorder); int min = 0x7FFFFFFF; int leaf = 0x7FFFFFFF; buildTree(inorder, postorder, 0, &min, tl, &leaf); cout << leaf << endl; }}void buildTree(const int* in, const int* post, int curTotal, int* minTotal, int tl, int * leaf){ if (tl == 0) return; int cur = -1; for (int i = 0; i < tl; i++) { if (in[i] == post[tl - 1]) { cur = i; break; } } //左孩子长度cur int left = cur; //right长度 tl-cur-1 int right = tl - cur - 1; curTotal += in[cur]; if (tl == 1) { if (curTotal <= *minTotal) { *minTotal = curTotal; *leaf = in[cur]; } } //left buildTree(in, post, curTotal, minTotal, left, leaf); //right buildTree(in + left + 1, post + left, curTotal, minTotal, right, leaf);}

  

posted on
2017-05-09 15:32 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/shuiyonglewodezzzzz/p/6830823.html

你可能感兴趣的文章
解决socket交互的10048和10055错误的总结
查看>>
UVA 10229 Modular Fibonacci
查看>>
将uglifyjs添加到鼠标右键菜单
查看>>
OSGI的实现——Felix
查看>>
每日英语:There's No Avoiding Google+
查看>>
面试题(1)
查看>>
halcon学习笔记——(8)由标定板得到测量平面位姿
查看>>
css中导入样式表和链接样式表有什么区别
查看>>
排序算法(牢记)
查看>>
昨天开发引入的两个错误--Parcelable
查看>>
ylb:exists(存在)的应用实例
查看>>
[oracle] 系统权限管理
查看>>
图片内容保存到数据库,并从数据库里获取图片
查看>>
JavaScript 时间、格式、转换及Date对象总结
查看>>
令人作呕的OpenSSL
查看>>
计算机中的信息=位+上下文(转)
查看>>
angularjs中 *.min.js.map 404的问题
查看>>
Codeforces Gym 100342C Problem C. Painting Cottages 暴力
查看>>
WPF中Label使用StringFormat
查看>>
Open Live Writer
查看>>