
剑指offer
强强爱学习
这个作者很懒,什么都没留下…
展开
-
剑指offer 08 两个栈实现队列
题目描述 解题思路 栈:后进先出,每次只能弹出栈顶元素。 队列:先进先出。每次只能弹出队首元素。 思路:引进辅助栈。主栈A存储元素,每次添加新元素的时候,直接压入A。当需要弹出元素的时候,辅助栈B就派上了用场。为了实现队列,实习上我们需要弹出栈底的元素,可行的办法是每次需要弹出的时候,将A的元素逐渐压入B中,当A中位空的时候,B的栈顶就是带弹出的元素。将B的栈顶元素弹出之后,在逐个压入A中即可...原创 2020-04-28 23:00:04 · 139 阅读 · 0 评论 -
剑指offer 07
题目描述 解题思路 前序遍历:先访问根节点,再访问左子树,再访问右子树。 后序遍历:先访问左子树,再访问右子树,再访问根节点。 中序遍历:先访问左子树,再访问根节点,再访问右子树。 规律 1)前序遍历序列的第一个节点是根 2)后序遍历序列的最后一个节点是根 3)中序遍历中,根左边的是左子树部分,跟右边的右子树部分 4)前序(后序)遍历决定层次,中序遍历决定顺序。 思路 设计到树的问题,首先考虑...原创 2020-04-28 22:53:28 · 195 阅读 · 0 评论 -
剑指offer04
题目描述 解题思路 该矩阵的特点是左上角的元素最小,右下角的元素最大。 左下角的元素是同一行中最小的,也是同一列中最大的。 我们开始从左下角开始查找,如果目标值比数组元素大,就到右边去寻找,如果目标值比数组元素小,就到上边去寻找。 类似的,我们也可以从右上角开始查找。 代码 class Solution { public: bool findNumberIn2DArray(vector&...原创 2020-04-28 22:41:29 · 218 阅读 · 0 评论