首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PAT(甲级)1138.Postorder Traversal(25)

PAT(甲级)1138.Postorder Traversal(25)

作者头像
lexingsen
发布于 2022-02-25 00:06:49
发布于 2022-02-25 00:06:49
25110
代码可运行
举报
文章被收录于专栏:乐行僧的博客乐行僧的博客
运行总次数:0
代码可运行

PAT 1138.Postorder Traversal(25) Suppose that all the keys in a binary tree are distinct positive integers. Given the preorder and inorder traversal sequences, you are supposed to output the first number of the postorder traversal sequence of the corresponding binary tree. 输入格式: Each input file contains one test case. For each case, the first line gives a positive integer N (≤ 50,000), the total number of nodes in the binary tree. The second line gives the preorder sequence and the third line gives the inorder sequence. All the numbers in a line are separated by a space.

输出格式: For each test case, print in one line the first number of the postorder traversal sequence of the corresponding binary tree.

输入样例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
7
1 2 3 4 5 6 7
2 3 1 5 4 7 6

输出样例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
3

题目分析:模板题,根据中序遍历和前序遍历求解后序遍历序列的第一个元素。

注意:应该牢牢掌握以下三种二叉树的重构。 1.前序+中序 2.中序+后序 3.中序+层序

AC代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>
using namespace std;

const int maxn = 50010;
int mid[maxn] = {0};
int pre[maxn] = {0};
int post[maxn] = {0};
int n, idx=1;

struct node{
    int data;
    node* lchild;
    node* rchild;
};

node* build(int preL, int preR, int inL, int inR){
    if(preL > preR)return NULL;
    node* root = new node;
    root->data = pre[preL];
    int k;
    for(k = inL; k<=inR; ++k){
        if(mid[k] == pre[preL])
            break;
    }
    int numLeft = k - inL;
    root->lchild = build(preL+1, preL+numLeft, inL, k-1);
    root->rchild = build(preL+numLeft+1, preR, k+1, inR);
    return root;
}

void postorder(node* root){
    if(root){
        postorder(root->lchild);
        postorder(root->rchild);
        post[idx ++] = root->data;
    }
}
int main(){
    scanf("%d", &n);
    for(int i=1; i<=n; ++i){scanf("%d", &pre[i]);}
    for(int i=1; i<=n; ++i){scanf("%d", &mid[i]);}
    node* root = build(1, n, 1, n);
    postorder(root);
    cout<<post[1]<<endl;
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
android安全环境检测很重要
android安全环境检测很重要
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Android APK脱壳--腾讯乐固、360加固一键脱壳
参考文章:https://www.jianshu.com/p/138c9de2c987
bosh123
2021/01/24
13.8K0
Android APK脱壳--腾讯乐固、360加固一键脱壳
启动 VirtualXposed,并在 VirtualXposed中安装 FDex2:
用户1205080
2018/10/18
17.9K4
Android APK脱壳--腾讯乐固、360加固一键脱壳
Android Hook与简单的xposed模块开发实例
Hook是一种在特定事件或操作发生时插入自定义代码的编程技术。在前端开发中,例如Vue和Angular的生命周期钩子,体现了Hook的机制,允许开发者在组件的不同阶段执行代码,提升代码的模块化和可重用性。
阿菇kinoko
2025/01/24
3761
Android Hook与简单的xposed模块开发实例
Android Hook技术防范漫谈
背景 当下,数据就像水、电、空气一样无处不在,说它是“21世纪的生产资料”一点都不夸张,由此带来的是,各行业对于数据的争夺热火朝天。随着互联网和数据的思维深入人心,一些灰色产业悄然兴起,数据贩子、爬虫、外挂软件等等也接踵而来,互联网行业中各公司竞争对手之间不仅业务竞争十分激烈,黑科技的比拼也越发重要。 随着移动互联网的兴起,爬虫和外挂也从单一的网页转向了App,其中利用Android平台下Dalvik模式中的Xposed Installer和Cydia Substrate框架对App的函数进行Hook这一招
美团技术团队
2018/03/13
2.1K0
Android Hook技术防范漫谈
[Android][Security] Android 逆向之安全防护基本策略
使用混淆主要可以减小包的大小。混淆对于安全保护来说,只是增加了阅读难度而已。混淆不会把关键代码混淆掉,比如MainActivity,Application等,可以通过分析smali和阅读jar包定位代码。
wOw
2020/01/20
1.4K0
[Android][Security] Android 逆向之安全防护基本策略
【胖虎的逆向之路】Android 7.0 上Magisk配合Xposed的相关问题
1.Android 7.1.0(硬件小米6 sagit); 2.Magisk V23.0 3.Xposed (由Magisk-模块-搜索下载)
胖虎哥
2023/05/10
7010
【胖虎的逆向之路】Android 7.0 上Magisk配合Xposed的相关问题
没有Android基础都能学会的Xposed基础教程
随着手机使用者增多,手机智能化程度提高,各种app应运而生,这些app中不免有些恶意程序,时刻威胁着使用者,对用户的隐私等造成侵犯。究其原因是系统开源导致安全威胁,这次通过学习一个开源框架xposed来了解移动app的安全。
知识与交流
2023/03/25
1.5K0
没有Android基础都能学会的Xposed基础教程
实战 | Android过度绘制自动化测试
应用可能会在单个帧内多次绘制同一个像素,这种情况称为“过度绘制”,过度绘制通常是不必要的,最好避免,它会浪费 GPU 时间来渲染与用户在屏幕上所见内容无关的像素,进而导致性能问题。
岛哥的质量效能笔记
2021/08/18
4710
实战 | Android过度绘制自动化测试
安卓反调试|常见的Xposed框架检测手段与突破方式​
原理:当App获取到系统权限的时候,可以获取系统的所有运行中的App的列表,通过列表发现是否存在有Xposed相关的App(通常都是Xposed Installer相关的Apk,例如de.robv.android.xposed.installer)保持运行状态,一旦存在,就表明用户很有可能存在Hook行为。
云爬虫技术研究笔记
2020/03/25
3.9K0
Xposed 配置,使用以及原理介绍
在搞逆向的时候,Hook是个很必要的手段,通过Hook就可以了解内部的运行机制,甚至进行修改。对于Hook Java方法,用的比较多的就是Xposed,本篇就介绍下Xposed的配置,使用,原理。
一只小虾米
2022/10/25
2.9K0
Xposed 配置,使用以及原理介绍
万物皆可Hook!重新捡起Hook神器-Xposed框架
而是在程序界流传的强大秘技-Hook函数,Hook原意是指钩子,它表示的就是在某个函数的上下文做自定义的处理来实现我们想要的黑科技。 在很多技术领域都存在的这种Hook技术,比如下面这些:
云爬虫技术研究笔记
2019/11/05
3.5K0
万物皆可Hook!重新捡起Hook神器-Xposed框架
Xposed模块编写基础案例
如何创建Andrioid项目可以参考之前的文章:IDEA创建Android项目并反编译APK
李玺
2021/11/22
1.4K0
Xposed模块编写基础案例
浅谈android hook技术浅谈android hook技术-- coding:utf-8 --print jscode author = 'gaohe'-- coding:utf-8 --pri
您当前的位置: 安全博客 > 技术研究 > 浅谈android hook技术 浅谈android hook技术 2017年03月17日 10:06 1249 前言 在测试android过程中,能对函数进行hook能帮助更加深入的进行测试,本文简单介绍了hook框架xposed和frida,从简单的小例子做了简单的演示,算是自己的学习的过程,是个入门的过程。
一个会写诗的程序员
2018/08/20
2K0
非洲某银行APP安全分析
国庆放假期间领导给了一个任务,分析非洲某银行APP,绕过反抓包,并且分析加密算法,能实现自动登录,这也是我第一次分析APP(以前从未接触,也只是看大佬们的文章),所以记录一下
UzJu@菜菜狗
2022/04/25
2.1K0
非洲某银行APP安全分析
android逆向工具/命令
jd-gui 查看jar包的java代码 使用jd-gui打开classes-dex2jar.jar就可以看到源代码了
tea9
2022/09/08
9390
APP攻防-资产收集篇&反证书检验&XP框架&反代理VPN&数据转发&反模拟器
没有限制过滤的抓包问题: 1、抓不到-工具证书没配置好 2、抓不到-app走的不是http/s 有限制过滤的抓包问题: 3、抓不到-反模拟器调试 4、抓不到-反代理VPN 5、抓不到-反证书检验
没事就要多学习
2024/07/18
2560
APP攻防-资产收集篇&反证书检验&XP框架&反代理VPN&数据转发&反模拟器
面试题丨android面试问题合集
静态分析工具是指在不运行程序的情况下,通过对程序文件进行源代码分析,从而对程序的安全性、可靠性、性能等进行分析的工具。它可以识别出程序文件中的漏洞,但只能识别出程序文件中的静态漏洞,不能识别出程序在运行中可能出现的动态漏洞。比如apktool、androidkiller、jeb,GDA、smali、jadx等
极安御信安全研究院
2023/06/08
2.4K1
面试题丨android面试问题合集
Xposed 3.1.5 首战 之 来场劫持用户输入玩玩吧
理解程度还不够,阅读几次也只是有个印象而已,这次再次拷贝一份,以供阅读此文的小伙伴简单阅读一下:
贺biubiu
2019/06/11
8860
Xposed去抖音提示
特别感谢https://www.52pojie.cn/thread-684757-1-1.html 官方教程:https://github.com/rovo89/XposedBridge/wiki/Development-tutorial
ppjun
2018/09/05
1.6K0
App安全测试
在App项目中都会碰到三座App安全大山。App客户端安全、数据传输安全、App服务端安全。下面以分析检测的思路进行对App安全威胁的这三座大山进行一些剖析梳理总结。
小道安全
2021/09/02
2.7K0
推荐阅读
相关推荐
Android APK脱壳--腾讯乐固、360加固一键脱壳
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验