博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
255. Verify Preorder Sequence in Binary Search Tree
阅读量:5333 次
发布时间:2019-06-15

本文共 1544 字,大约阅读时间需要 5 分钟。

题目:

Given an array of numbers, verify whether it is the correct preorder traversal sequence of a binary search tree.

You may assume each number in the sequence is unique.

Follow up:

Could you do it using only constant space complexity?

链接: 

题解:

使用Stack来模拟preorder traversal ->   mid, left, right。主要代码都是参考了Stefan Pochmann的解答。

Time Complexity - O(n), Space Complexity - O(logn)

public class Solution {    public boolean verifyPreorder(int[] preorder) {        int low = Integer.MIN_VALUE;        Stack
stack = new Stack<>(); for(int i : preorder) { if(i < low) return false; while(!stack.isEmpty() && i > stack.peek()) low = stack.pop(); stack.push(i); } return true; }}

 

不使用Stack,Space Complexity O(1)的解法, 利用了原数组

public class Solution {    public boolean verifyPreorder(int[] preorder) {        int low = Integer.MIN_VALUE, index = -1;        for(int i : preorder) {            if(i < low)                return false;            while(index >= 0 && i > preorder[index])                low = preorder[index--];            preorder[++index] = i;        }                return true;    }}

 

 

Reference:

https://leetcode.com/discuss/51543/java-o-n-and-o-1-extra-space

https://leetcode.com/discuss/52060/72ms-c-solution-using-one-stack-o-n-time-and-space

https://leetcode.com/discuss/65241/ac-python-o-n-time-o-1-extra-space

https://leetcode.com/discuss/68862/my-c-solution-easy-to-understand

转载于:https://www.cnblogs.com/yrbbest/p/5014943.html

你可能感兴趣的文章
【洛谷】【堆+模拟】P2278 操作系统
查看>>
hdu3307 欧拉函数
查看>>
Spring Bean InitializingBean和DisposableBean实例
查看>>
Solr4.8.0源码分析(5)之查询流程分析总述
查看>>
[Windows Server]安装系统显示“缺少计算机所需的介质驱动程序”解决方案
查看>>
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>
Lucene 学习之二:数值类型的索引和范围查询分析
查看>>
软件开发工作模型
查看>>
Java基础之字符串匹配大全
查看>>
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>
移动端 响应式、自适应、适配 实现方法分析(和其他基础知识拓展)
查看>>
selenium-窗口切换
查看>>
使用vue的v-model自定义 checkbox组件
查看>>
[工具] Sublime Text 使用指南
查看>>
Hangfire在ASP.NET CORE中的简单实现方法
查看>>
Algorithm——何为算法?
查看>>
Web服务器的原理
查看>>
小强升职计读书笔记
查看>>
常用的107条Javascript
查看>>