剑指offer-二叉搜索树的后序遍历序列

 

/*输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。*/
/**
已知条件:后序序列最后一个值为root;二叉搜索树左子树值都比root小,右子树值都比root大。
1、确定root;
2、遍历序列(除去root结点),找到第一个大于root的位置,则该位置左边为左子树,右边为右子树;
3、遍历右子树,若发现有小于root的值,则直接返回false;
4、分别判断左子树和右子树是否仍是二叉搜索树(即递归步骤1、2、3)。* @author 16114**/public class Solution {public boolean VerifySquenceOfBST(int [] sequence) {if(sequence==null || sequence.length==0) return false;return check(sequence,0,sequence.length-1);}public boolean check(int [] a, int l,int r){if(r-l<=1) return true;int root = a[r]; //后序序列最后一个值为rootint pos = l;while(pos < r && a[pos] <= root) pos++; //找到第一个大于root的位置for(int i=pos; i<r; i++)//遍历右子树 if(a[i]<root) return false; //若发现有小于root的值,则直接返回false;return check(a,l,pos-1) && check(a,pos,r-1); //分别递归判断左子树和右子树是否仍是二叉搜索树
    }
}

 

转载于:https://www.cnblogs.com/Roni-i/p/10342571.html

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

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

相关文章

Nessus漏洞扫描教程之安装Nessus工具

Nessus基础知识 Nessus号称是世界上最流行的漏洞扫描程序&#xff0c;全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务&#xff0c;并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件&#xff0c;Nessus可同时在本机或远端上遥控&#xff0c;进行系…

php强制关机代码,程序员关机代码是什么?

程序员关机代码&#xff1a;1、定时关机&#xff0c;在运行中输入【at 22:00 Shutdown -s】&#xff1b;2、倒计时方式关机&#xff0c;在运行中输入【Shutdown.exe -s -t 3600】&#xff1b;3、自动关机&#xff0c;输入【shutdown -i】。程序员关机代码&#xff1a;1、比如你…

Java 9和应用程序性能监视的激动人心之处

通过AppDynamics解决应用程序问题的速度提高了10倍–以最小的开销在代码级深度监视生产应用程序。 开始免费试用&#xff01; 在当今的现代计算时代&#xff0c;软件创新的不断增强使我们更接近软件革命的时代。 也许在遥远的未来&#xff0c;这可能是对21世纪记忆犹新的方式。…

GPU下train 模型出现nan

When training on GPU, the error "Model diverged with loss NaN" is often caused by a sotmax thats getting a symbol larger than vocab_size 转载于:https://www.cnblogs.com/wuxiangli/p/10344259.html

php语言的四种循环控制语句,PHP循环控制语句

循环语句的作用就是在条件满足的情况下&#xff0c;可以执行多次相同或相似的任务&#xff0c;PHP中的循环语句包括for、while、do-while和foreach语句结构&#xff0c;下面分别介绍。for语句for语句结构一般用于执行确定循环次数的操作&#xff0c;其条件包括三个部分&#xf…

Kali linux安装漏洞扫描工具Nessus安装指南

引子&#xff1a;Nessus是著名信息安全服务公司tenable推出的一款漏洞扫描与分析软件&#xff0c;号称是"世界上最流行的漏洞扫描程序,全世界超过75,000个组织在使用它"。尽管这个扫描程序可以免费下载得到&#xff0c;但是要从Tenable更新到所有最新的威胁信息,每年…

7.9 规划Varnish缓存

./varnishlog -i VCL_LOG 转载于:https://www.cnblogs.com/likevin/p/10337069.html

php详解递归,PHP递归算法详解

本篇文章主要介绍PHP递归算法详解&#xff0c;感兴趣的朋友参考下&#xff0c;希望对大家有所帮助。遇到需要设计树节点的数据库结构&#xff0c;以及需要读出来的树节点数据结构&#xff01;大家是否会选择用数据库的查询方式来获取树结构呢&#xff1f;//曾经的数据库查询获取…

土城战役_避免使用FOR –反假战役

土城战役您是否想知道FOR如何影响您的代码&#xff1f; 他们如何限制您的设计&#xff0c;更重要的是如何将您的代码转换为无人为含义的多行代码&#xff1f; 在这篇文章中&#xff0c;我们将看到如何将for的简单示例&#xff08;由Francesco Cirillio提供- 反if活动&#xff…

Map以自定义类做为键值

map在STL中的定义 template <class Key, class T, class Compare less<Key>, class Alloc alloc> 第一个参数Key是关键字类型 第二个参数T是值类型 第三个参数Compare是比较函数&#xff08;仿函数&#xff09; 第四个参数是内存配置对象 map内部存储机制实际是以…

“基于深度学习的目标检测跟工业机器人结合”实现过程

基于深度学习的目标检测技术在工业机器人中的应用&#xff0c;可以帮助机器人实现自动化的目标检测和识别任务。以下是基于深度学习的目标检测与工业机器人结合的一般实现过程&#xff1a; 1. 数据采集和准备&#xff1a; 首先&#xff0c;收集和准备用于训练深度学习模型的数据…

小规模流处理kata。 第2部分:RxJava 1.x / 2.x

在第1部分&#xff1a;线程池中&#xff0c;我们设计并实现了相对简单的系统&#xff0c;用于实时处理事件。 确保您已阅读上一部分&#xff0c;因为它包含一些我们将重用的类。 以防万一这是要求&#xff1a; 一个系统每秒传送约一千个事件。 每个Event至少具有两个属性&…

java 计算信度,11.5.2 评分者信度实例分析

11.5.2 评分者信度实例分析【例11.5】 某校学生举办歌唱大赛&#xff0c;请5位评委老师为最终进入决赛的6名同学评定等级&#xff0c;结果如表11-10所示&#xff0c;请计算其信度。表11-10 歌唱大赛评定等级结果学生教师A1A2A3A4A5A6A344335B434343C233253D445344E324333解&a…

JAVA 类加载 随记

视频: https://www.bilibili.com/video/av29502877 1 JVM把Class加载到内存当中&#xff0c;检验解析初始化。默认使用的懒加载方式。 以下步骤是并行执行 可以把加载源看成JAVA配置文件。 解析&#xff1a; 符号引用&#xff1a; 类名&#xff0c;基本类型 直接引用&#xff…

Linux IO实时监控iostat命令详解

简介 iostat主要用于监控系统设备的IO负载情况&#xff0c;iostat首次运行时显示自系统启动开始的各项统计信息&#xff0c;之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。 语法 iostat [ -c ] [ -d ] [ -h ] […

打破冷漠僵局文章_研究僵局–第2部分

打破冷漠僵局文章调查死锁时最重要的要求之一就是要研究死锁。 在我的上一个博客中&#xff0c;我写了一些名为DeadlockDemo代码&#xff0c;该代码使用一堆线程在一系列银行账户之间转移随机数&#xff0c;然后陷入僵局。 该博客运行该代码以演示获取线程转储的几种方法。 线…

七牛云php20m文件上传不了,七牛云存储 - 用php上传图片,我在本地测试,用php 接口,不成功...

七牛反馈显示信息说明已经成功了&#xff0c;但是在七牛空间显示的文件却不完整请问这是为什么啊&#xff1f;&#xff01;&#xff01;测试文件如下&#xff0c;本地localhost测试&#xff1a;require_once("qiniu/io.php");require_once("qiniu/rs.php")…

洛谷 P2463 [SDOI2008]Sandy的卡片 解题报告

P2463 [SDOI2008]Sandy的卡片 题意 给\(n(\le 1000)\)串&#xff0c;定义两个串相等为“长度相同&#xff0c;且一个串每个数加某个数与另一个串完全相同”&#xff0c;求所有串的最长公共子串&#xff0c;每个串长\(\le 101\)&#xff0c;值域\(\in [0,1864]\) 先差分一下&…

linux和windows的进程的虚拟地址空间

昨晚看到了深夜&#xff0c;终于对进程的虚拟地址空间有了个大致的了解&#xff0c;很激动&#xff0c;也很欣慰。回头想来&#xff0c;一个程序员&#xff0c;真的应该知道这些知识&#xff0c;否则还真不太称职。 首先告诉大家&#xff0c;我后面提到的这些知识在《windows核…

安装Red Hat Container Development Kit 2.2版本

当应用程序开发人员或架构师负责探索容器化应用程序提供的可能性时&#xff0c;没有比Red Hat容器开发套件&#xff08;CDK&#xff09;容易的了。 Red Hat CDK具有本地OSX&#xff0c;Linux或Windows环境所需的所有Cloud工具&#xff0c;并且已预先配置了一些容器供您浏览。 …