剑指Offer:二叉搜索树的后序遍历序列
来源:互联网 发布:网络算法与复杂性理论 编辑:程序博客网 时间:2024/06/06 15:39
二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { if(sequence.empty()) return false; return judge(sequence); }private: bool judge(vector<int> sequence){ int sz=sequence.size(),pos{-1}; if(sz<=2) return true; int rootVal=sequence.back(); for(int i=0;i<sz-1;++i){ if(sequence[i]>rootVal){ pos=i; break; } } bool bres1{true},bres2{true}; if(pos>0){ vector<int> left(sequence.begin(),sequence.begin()+pos); if(*(max_element(left.begin(),left.end()))>rootVal){ return false; }//重点 bres1=judge(left); } if(pos!=-1){//注意end-1 vector<int> right(sequence.begin()+pos,sequence.end()-1); if(*(min_element(right.begin(),right.end()))<rootVal){ return false; }//重点 bres2=judge(right); } return bres1&&bres2; }};
0 0
- 剑指offer:二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 剑指offer--二叉搜索树的后序遍历序列
- 剑指Offer-->二叉搜索树的后序遍历序列
- 《剑指offer》二叉搜索树的后序遍历序列
- 【剑指Offer】二叉搜索树的后序遍历序列
- 剑指offer--二叉搜索树的后序遍历序列
- 剑指 offer:二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列||剑指offer
- 剑指offer-二叉搜索树的后序遍历序列
- 剑指offer 二叉搜索树的后序遍历序列
- 剑指offer 二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- [剑指offer]二叉搜索树的后序遍历序列
- 《剑指offer》-二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- hdu2874 Connections between cities (LCA离线)
- listView及ScrollView等PadingTop显示问题:android:clipToPadding="false"
- .caffemodel的生成和利用
- JDBC读取MySQL的BLOB类型
- [Android]如何导入已有的外部数据库
- 剑指Offer:二叉搜索树的后序遍历序列
- 前端构建利器:AngularJS + Bower + Grunt
- C#入门6.4——字符串的比较
- 确定比赛名次
- iOS-不用网线搭建IPv6网络测试环境
- 【网络】网络基础知识总结(包括TCP/IP协议、ARP、UDP等)
- 利用JS提交表单的几种方法和验证
- 利用HttpClient实现接口-Java工具类(三)
- View的基础知识