分类: 剑指offer算法67题

记录剑指offer中67道算法题的刷题历程,参考博主@阿秀的学习笔记。

60 篇文章

剑指offer67题-No23.二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回 true ,否则返回 false 。假设输入的数组的任意两个数字都互不相同。数据范围: 节点数量 0≤n≤10000≤n≤1000 ,节点上的值满足 1≤val≤1051≤val≤105 ,保证节点上的值各不相同 要求:空间复杂度 O(n) ,时间时间复杂度 O(n2) …
剑指offer67题-No21.栈的压入弹出序列
法1:辅助栈 同时用两个指针i, j分别指向两个序列的头部, 每次我们先将i所指向的元素压入栈中, 然后i向后移动一步, 之后再检查当前栈顶, 若对应上了弹出序列中j所指向的元素, 则弹出元素, j向后移动, 再继续检查, 直到栈空或栈顶元素和j所指元素不等为止 class Solution { public: stack<int> s1; …
剑指offer67题-No20.包含min函数的栈
法1:双栈 再开一个栈,记录单调递减序列,关键是push操作,维护两个栈,每次push元素的时候与第二个栈的栈顶元素比较,若是较小,则进入第二个栈;若是较大,则第二个栈的栈顶元素再次入栈。于是,每次访问最小值即访问第二个栈的栈顶。 #include <stack> class Solution { public: stack<int> …