1 Star 0 Fork 0

yuhang2__2/LeetCode-Solutions

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
verify-preorder-sequence-in-binary-search-tree.cpp 1.04 KB
一键复制 编辑 原始数据 按行查看 历史
// Time: O(n)
// Space: O(1)
class Solution {
public:
bool verifyPreorder(vector<int>& preorder) {
int low = INT_MIN, i = -1;
for (auto& p : preorder) {
if (p < low) {
return false;
}
while (i >= 0 && p > preorder[i]) {
low = preorder[i--];
}
preorder[++i] = p;
}
return true;
}
};
// Time: O(n)
// Space: O(h)
class Solution2 {
public:
bool verifyPreorder(vector<int>& preorder) {
int low = INT_MIN;
stack<int> path;
for (auto& p : preorder) {
if (p < low) {
return false;
}
while (!path.empty() && p > path.top()) {
// Traverse to its right subtree now.
// Use the popped values as a lower bound because
// we shouldn't come across a smaller number anymore.
low = path.top();
path.pop();
}
path.emplace(p);
}
return true;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yuhang2__2/LeetCode-Solutions.git
git@gitee.com:yuhang2__2/LeetCode-Solutions.git
yuhang2__2
LeetCode-Solutions
LeetCode-Solutions
master

搜索帮助