#include<iostream>
#include<vector>
using namespace std;
bool isMirror;
vector<int>pre,post;
void getpost(int root,int tail){
if(root>tail)return;
int i=root+1,j=tail;
//按普通情况处理
if(!isMirror){
//左子树
while(i<=tail&&pre[i]<pre[root])i++;
//右子树
while(j>root&&pre[j]>=pre[root])j--;
}else{
//左子树
while(i<=tail&&pre[i]>=pre[root])i++;
//右子树
while(j>root&&pre[j]<pre[root])j--;
}
if(i-j!=1){
return;
}
//处理左子树
getpost(root+1,j);
//处理右子树
getpost(i,tail);
post.push_back(pre[root]);
}
int main(){
int n;
cin>>n;
pre.resize(n);
for(int i=0;i<n;i++){
cin>>pre[i];
}
isMirror=false;
getpost(0,n-1);
if(post.size()!=n){
isMirror=true;
post.clear();
getpost(0,n-1);
}
if(post.size()==n){
cout<<"YES"<<endl;
cout<<post[0];
for(int i=1;i<n;i++){
cout<<" "<<post[i];
}
}else{
cout<<"NO"<<endl;
}
return 0;
}
1043 Is It a Binary Search Tree
张小明
前端开发工程师
音乐推荐系统 基于协同过滤的音乐推荐系统 基于用户画像的音乐推荐系统 使用基于协同过滤与用户画...
音乐推荐系统 基于协同过滤的音乐推荐系统 基于用户画像的音乐推荐系统 使用基于协同过滤与用户画像相结合的方法,为用户推荐音乐,同时实现注册、登陆、搜索音乐等多种功能 后台管理员可以实现增删改查等多种功能 使用的数据集为kaggle平台上的公开数据集…
数据分层架构的平衡艺术:在性能、成本与一致性之间寻找最优解
前言:架构的本质是权衡 在技术领域里,我们常常陷入一种幻觉:认为存在完美的解决方案。然而,从业十余年后,我深刻认识到,架构的本质不是寻找最优解,而是在相互冲突的约束中做出恰当的权衡。 数…
基于SpringBoot家教系统设计与实现
传统的信息管理方法通常需要较长的时间来处理数据,且容易出现较高的错误率,修改错误数据也较为繁琐。此外,数据检索过程费时费力。为了提高管理效率,可以在计算机上安装家教管理系统软件,充分发挥其高效的信息处理能力…
【AI模型隐私新威胁】:Open-AutoGLM中隐藏的7大攻击面详解
第一章:Open-AutoGLM隐私风险概述Open-AutoGLM 是一款基于开源大语言模型的自动化代码生成工具,其核心机制依赖于对用户输入上下文的深度理解与代码片段生成。尽管其在提升开发效率方面表现出色,但其架构设计和数据处理流程引入了若干潜在隐私…
金运环球:宏观支撑稳固,关注回调做多机会
一、核心驱动分析美联储将联邦基金利率目标区间下调至3.5%-3.75%,为年内第三次降息。鲍威尔明确释放鸽派信号,打消政策转向顾虑,并通过购买短债维持市场流动性宽松。决议后美元指数下行与美债收益率走低,持续降低黄金持有成本&…
2026年!Java程序员职场突破宝典:精通大模型,实现薪资翻倍与职业飞跃的完整指南!
一、风暴已至:大模型如何重塑Java开发者的职业版图 当多数Java程序员还在Spring Boot和微服务的舒适区徘徊时,一场由大模型引发的技术革命正悄然改变游戏规则。据统计,熟练掌握大模型集成与开发的Java工程师,薪资普遍比传统Java开…