前端该如何准备数据结构和算法?

2019-08-20
阅读 10 分钟
14.4k
实际上,当你了解了“数据结构”和“算法”存在的真正意义,以及一些实际的应用场景,对它有了一个整体的认知之后,你可能会对它产生强烈的兴趣。当然,它带将带给你的收益也是相当可观的。

【剑指offer】让抽象问题具体化

2019-02-17
阅读 3 分钟
1.6k
1.包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 思路 1.定义两个栈,一个栈用于存储数据,另一个栈用于存储每次数据进栈时栈的最小值. 2.每次数据进栈时,将此数据和最小值栈的栈顶元素比较,将二者比较的较小值再次存入最小值栈. 4.数据栈出栈...

【剑指offer】13.包含min函数的栈

2019-02-12
阅读 1 分钟
2.4k
题目 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 思路 1.定义两个栈,一个栈用于存储数据,另一个栈用于存储每次数据进栈时栈的最小值. 2.每次数据进栈时,将此数据和最小值栈的栈顶元素比较,将二者比较的较小值再次存入最小值栈. 4.数据栈出栈,最小值栈也...

【剑指offer】6.用两个栈实现队列

2019-01-16
阅读 1 分钟
1.7k
题目 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 基本思路 栈1: 用于入队列存储 栈2: 出队列时将栈1的数据依次出栈,并入栈到栈2中 栈2出栈即栈1的底部数据即队列要出的数据。 注意: 栈2为空才能补充栈1的数据,否则会打乱当前的顺序。 代码 {代码...}

【剑指offer】5.二叉树的镜像和打印

2019-01-14
阅读 2 分钟
2.2k
二叉树简介 基本结构: {代码...} 二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 题目1 二叉树的镜像 1....

【剑指offer】4.二叉树的遍历和重建

2019-01-13
阅读 2 分钟
1.7k
二叉树简介 基本结构: {代码...} 二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 题目1 二叉树遍历 1.1 ...

【剑指offer】3.从尾到头打印链表

2019-01-10
阅读 3 分钟
1.6k
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 分析 要了解链表的数据结构: val属性存储当前的值,next属性存储下一个节点的引用。 要遍历链表就是不断找到当前节点的next节点,当next节点是null时,说明是最后一个节点,停止遍历。 最后别忘了,从尾到头遍历链表,不要忘了将你的结果进行翻转。 ...