2021-PTA总决赛-L2-3 这是二叉搜索树吗?(递归)

news/2025/3/19 21:13:21/文章来源:https://www.cnblogs.com/Yuhhhhh/p/18781847

做题历程:

拿到手就开始建树,结点太多了所以不能数组建树,就结构体建树,建完发现还得建镜像,就懒得干了,去找大佬们的题解,发现大家都是直接通过二叉搜索树的性质来递归左右子树,一气呵成......还是做题做少了,照葫芦画瓢才过的。。。

AcCode:

#include<iostream>
#include<vector>
using namespace std;
int font[1010];
vector<int> ans;
vector<int> ans2;
void check_1(int l, int r){if(l > r) return ;int rt = font[l];int be = l + 1;int end = r;while(be <= end && rt > font[be]) be++;while(be <= end && rt <= font[end]) end--;if(be - end != 1) return ;check_1(l + 1, end);check_1(be, r);ans.push_back(rt);
}void check_2(int l, int r){if(l > r) return ;int rt = font[l];int be = l + 1;int end = r;while(be <= end && rt <= font[be]) be++;while(be <= end && rt > font[end]) end--;if(be - end != 1) return ;check_2(l + 1, end);check_2(be, r);ans2.push_back(rt);
}int main(){int N;cin >> N;for(int i = 0; i < N; i++) cin >> font[i];check_1(0, N - 1);check_2(0, N - 1);if(ans.size() != N && ans2.size() != N){cout << "NO" << endl;}else{cout << "YES" << endl;if(ans.size() == N){for(int i = 0; i < ans.size(); i++){cout << ans[i];if(i != ans.size() - 1) cout << " ";}}else{for(int i = 0; i < ans2.size(); i++){cout << ans2[i];if(i != ans2.size() - 1) cout << " ";}}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/901709.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django数据库迁移命令

Django数据库迁移命令 迁移命令 migrate python manage.py migrate # 全部项目 python manage.py migrate AppName # 一个项目 执行迁移命令必须确保当前在项目目录下(执行ls命令能看到 manage.py文件), 然后使用 python manage.py migrate 即可。 如果IDE为pycharm也可以…

记录一个因为电平转换的问题

调试电赛三子棋的棋盘时,发现了一个很让人抓狂的问题(因为我旧的原理图是霍尔全部的引脚全部引了出来,单片机用18个引脚去直接读取),但是最近因为一些事情,需要重新复刻 这个项目,于是乎我使用了并转串芯片,74hc165,单片机仅需三个引脚即可获取所有端口的状态,但是调…

什么是供应链管理?四个流是什么?一文彻底搞懂!

你有没有遇到过这些问题?客户下单了,但生产还没跟上,结果交货延期,客户疯狂催单? 仓库库存爆满,但缺的产品偏偏一直补不上,导致库存积压+缺货断货? 供应商交期不稳定,原材料时多时少,生产计划一改再改,车间每天在救火?如果你的企业也有这些烦恼,那说明你的供应链管…

业务系统基础框架-Winform版-极简登录

极简登录未输入提示登录错误提示

Ollama系列04:进阶篇-搭建私有的知识库和问答系统—cherryStudio版

本文是Ollama系列教程的第4篇,在前面的3篇内容中,我们分享了如何在本地安装ollama、运行deepseek等大模型、以及如何在chatbox和cherryStudio中使用本地ollama中的大模型,我们创建了私有的AI对话框和智能体。 Ollama系列教程目录(持续更新中):轻松3步本地部署deepseek 快…

halcon 入门教程(四) 一维码识别,二维码识别,OCR识别

原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/18781763有兴趣可以多看其他的halcon教程halcon 学习教程目录OK,本篇讲一些一维码,二维码,OCR识别的相关入门知识,不会讲的太深,因为如果你不是专门做这种设备的公司基本不会深入的去研究分析,但是学会基础…

微服务跨模块调用接口如何传递当前用户信息

我们要在 api模块下 新增一个配置类 FeignInterceptorConfig 该类的作用是 跨模块调用接口时拦截然后给用户信息添加进去 具体实现方式 注意点是需要手动配置一下 通过Spring Boot的自动配置机制,将com.hmall.api.config.FeignInterceptorConfig类注册为自动配置类。具体作用…

听见未来,Audio+AI | GAS 2025完整议程揭晓!

听见未来,Audio+AI 2025中国国际音频产业大会(GAS) 将于 3月26-27日 在上海张江科学会堂盛大举办!大会主题聚焦聚焦“听见未来,Audio+AI”,两场主旨论坛、八场专题论坛。内容覆盖电子产业热点领域及方向,分别包括音频+AI、智能车载 音频、线上智能交互、智能耳机与可穿戴…

C++容器

容器的分类分为顺序容器(sequence) 关联容器(asscoiative) 无序容器(unordered) 顺序容器Array、vector、deque、list 关联容器有(mul)set和(mul)map,set和map的区别在于,set的key就是value,而map的key和value是分开的,set和map内部都是通过红黑树实现 无序容器主要为…

.NET Core奇技淫巧之WinForm使用Python.NET并打包

前言 之前整了一个GZY.EFCoreCompare 的库,可以用做对比实体与数据库结构.感兴趣可以去看看,地址:GZY.EFCoreCompare 但是只能导出execl表格. 后来大佬用Python写了个类,可以将execl表格直接生成SQL语句. 但是需要通过开发工具 或者python环境去运行. 对现场的非技术人员很不友…

MCP Server 开发实战指南(Python版)

原文链接:https://www.ryanzoe.top/ai/mcp-server-%e5%bc%80%e5%8f%91%e6%95%99%e7%a8%8b/ MCP 官方文档https://modelcontextprotocol.io/introduction各个 clients 对 MCP 的支持情况https://modelcontextprotocol.io/clientsMCP Python SDK:MCP Client 和 Server 官方 SDK…